MyBatis-Spring的使用
本文是 MyBatis-Spring 官方文档的阅读笔记,方便后续查阅。
本文是 MyBatis-Spring 官方文档的阅读笔记,方便后续查阅。
在看轻量级锁加锁源码时,顺便看了下 jdk 里的 CAS 操作实现,本文记录下相关代码。
PropertyPlaceholderConfigurer 用于加载指定的配置文件,替换 bean 配置中的占位符为指定的属性值。
在 dubbo的Reference注解实现原理 中提到,@Reference 注解用于实现 RPC client 代理的自动注入,这是通过 ReferenceAnnotationBeanPostProcessor 来实现的。若要让其生效,还需要在这之前将其注册到 BeanFactory 中。
Spring 通过 AbstractAutoProxyCreator 来创建 AOP 代理,AbstractAutoProxyCreator 是一个抽象类,它实现了 BeanPostProcessor 接口,用于在 bean 初始化完成之后创建它的代理
dubbo 是一个流行的 RPC 框架,它提供了一个 @Reference 注解,用于配置依赖的远程接口,完成代理类的自动注入。本文主要关注 @Reference 注解的实现原理。
AbstractApplicationContext 是 ApplicationContext 的一个抽象实现类。和普通的 BeanFactory 不同的是,ApplicationContext 可以检测到它的内部 BeanFactory 中定义的特殊 Bean:自动完成 BeanFactoryPostProcessor、BeanPostProcessor、ApplicationListener 的注册。
XmlBeanFactory 是一个最简单的 BeanFactory 实现,它支持通过 xml 的形式配置和管理 bean。本文主要关注其解析 xml 和加载 BeanDefinition 的流程。
Spring 提供了 @Autowired 注解,可用于自动注入所需的 bean,与 xml 配置相比更加简洁,本文主要关注 @Autowired 注解的实现原理。
InstantiationAwareBeanPostProcessor 是 BeanPostProcessor 的子接口,新增了一个实例化之前(BeforeInstantiation)的回调、一个实例化之后(AfterInstantiation)填充 property 之前的回调