1 分钟快速上手 Spring Cache

如果你现在有一个现成的工程,你想给你工程的某个接口增加缓存,再不可以分布式缓存的情况下,你可以通过以下两步完成 Spring Cache 接入:

阅读更多

SpringAop 代理模式及 AopContext 问题小记

AOP 称为面向切面编程,其底层原理就是动态代理;JAVA 中比较常见的动态代理有两种,分别是 JDK 动态代理和 CGLIB 动态代理,这点从 Spring Aop 的 AopProxy 的实现就可以得出验证。

1
2
3
AopProxy
--- JdkDynamicAopProxy
--- CglibAopProxy

Spring 作为 Java 应用领域最牛 X 的基础框架产品,在对于一些版本变更导致的兼容性问题的处理上一直被诟病,对于这两种代理方式的选择上,Spring 不同版本存在一定的差异,这也是本文产生的一个原因。

阅读更多

聊一聊 RestTemplate

原文:https://juejin.cn/post/6844903695981740046

从 3.0 版本开始,Spring 提供了 RestTemplate 作为用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率。

本篇文章将从 RestTemplate 提供的 API 入手,先来了解下 RestTemplate 的具体使用,然后再对其中涉及到的几个核心类进行分析,最后再来分析下 RestTemplate 执行的整个流程,篇幅比较长,建议先码为快!

阅读更多

聊一聊 Spring 中的扩展机制之 NamespaceHandler

原文:https://juejin.cn/post/6844903665262657544

前一篇 聊一聊 Spring 中的扩展机制(一) 中聊到了ApplicationListenerApplicationContextAwareBeanFactoryAware三种机制。本篇将介绍 NamespaceHandler 的扩展使用。

相信很多小伙伴对于这几个类都不陌生,基本基于java实现的RPC框架都会使用,比如 Dubbo , SOFARpc 等。本文先从几个小demo入手,了解下基本的概念和编程流程,然后分析下 SOFARpc 中是如何使用的。

阅读更多

聊一聊 Spring 中的扩展机制之 Listener & Awre

之前 Spring 源码系列文章中大多是底层源码的分析,通过源码可以让我们能够清晰的了解 Spring 到底是什么,而不是停留于表面的认知。比如当我们要使用 @Autowired 注解时,可以拿到我们想要的 bean ,但是为什么可以是值得思考的。– 关于阅读源码

Spring源码的阅读结合日常的使用,可以帮助我们更好的掌握这个庞大的技术体系,实际的开发工作中有很多地方可以借鉴它的一些思想来帮助我们更好的实现自己的业务逻辑。本篇将以扩展点为切入点,来了解下在Spring生命周期中扩展Spring中的Bean功能。

阅读更多

聊一聊 AOP:Advice 源码解析

原文:https://juejin.cn/post/6844903624250769421

在第一篇中的例子和概念介绍中我们对 Advice 有了一个初步的认知。在 Spring AOP 中,Advice 的作用就是用来描述 Spring AOP 围绕方法调用而注入的切面行为。本篇文章将从源码的角度来看一看 Advice 到底是什么样的?又是怎么完成通知的?

阅读更多

Spring 源码系列-BeanDefinition

Bean的定义主要由 BeanDefinition 来描述的。作为Spring中用于包装Bean的数据结构,今天就来看看它的面纱下的真容吧

阅读更多