如果你现在有一个现成的工程,你想给你工程的某个接口增加缓存,再不可以分布式缓存的情况下,你可以通过以下两步完成 Spring Cache
接入:
AOP 称为面向切面编程,其底层原理就是动态代理;JAVA 中比较常见的动态代理有两种,分别是 JDK 动态代理和 CGLIB 动态代理,这点从 Spring Aop 的 AopProxy 的实现就可以得出验证。
1 | AopProxy |
Spring 作为 Java 应用领域最牛 X 的基础框架产品,在对于一些版本变更导致的兼容性问题的处理上一直被诟病,对于这两种代理方式的选择上,Spring 不同版本存在一定的差异,这也是本文产生的一个原因。
从 3.0 版本开始,Spring 提供了 RestTemplate 作为用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率。
本篇文章将从 RestTemplate 提供的 API 入手,先来了解下 RestTemplate 的具体使用,然后再对其中涉及到的几个核心类进行分析,最后再来分析下 RestTemplate 执行的整个流程,篇幅比较长,建议先码为快!
前一篇 聊一聊 Spring 中的扩展机制(一) 中聊到了ApplicationListener
、ApplicationContextAware
、BeanFactoryAware
三种机制。本篇将介绍 NamespaceHandler
的扩展使用。
相信很多小伙伴对于这几个类都不陌生,基本基于java
实现的RPC
框架都会使用,比如 Dubbo , SOFARpc 等。本文先从几个小demo
入手,了解下基本的概念和编程流程,然后分析下 SOFARpc
中是如何使用的。
之前 Spring 源码系列文章中大多是底层源码的分析,通过源码可以让我们能够清晰的了解 Spring 到底是什么,而不是停留于表面的认知。比如当我们要使用 @Autowired 注解时,可以拿到我们想要的 bean ,但是为什么可以是值得思考的。– 关于阅读源码
Spring源码的阅读结合日常的使用,可以帮助我们更好的掌握这个庞大的技术体系,实际的开发工作中有很多地方可以借鉴它的一些思想来帮助我们更好的实现自己的业务逻辑。本篇将以扩展点为切入点,来了解下在Spring生命周期中扩展Spring中的Bean功能。
在第一篇中的例子和概念介绍中我们对 Advice 有了一个初步的认知。在 Spring AOP 中,Advice 的作用就是用来描述 Spring AOP 围绕方法调用而注入的切面行为。本篇文章将从源码的角度来看一看 Advice
到底是什么样的?又是怎么完成通知的?
aop 终于提上日程来写一写了。
本系列分为 上、中、下三篇。上篇主要是介绍如果使用 AOP ,提供了demo和配置方式说明;中篇来对实现 AOP 的技术原理进行分析;下篇主要针对Spring中对于AOP的实现进行源码分析。
在Spring源码系列-BeanDefinition文章中大概分析了一下 Bean 的载入,其实这个过程就是在Ioc容器中建立BeanDefinition的数据映射。但是对于Bean的实例化并未涉及,在之前的分析中也提到,bean的实例化是在依赖注入是才具体完成。
Bean的定义主要由 BeanDefinition 来描述的。作为Spring中用于包装Bean的数据结构,今天就来看看它的面纱下的真容吧