如题,有什么开源框架组件在和spring整合的时候,使用了spring的Bean初始化过程提供的一下扩展特性,或者说使用了spring的aop等特性的?
- Spring的Bean初始化过程,提供了很多的扩展特性,比如:
Aware
接口(BeanNameAware、ApplicationContextAware、BeanFactoryAware等接口),BeanFactoryPostProcessor
接口(postProcessBeforeInitialization方法,postProcessAfterInitialization方法),InitializingBean
接口(afterPropertiesSet方法),DisposableBean
接口(destory方法),FactoryBean
接口等扩展点。 - 比如:mybatis和Spring的整合组件
mybatis-spring
中的SqlSessionFactoryBean
,就应用了FactoryBean
扩展点。大家有知道更多类似的组件使用了spring bean的哪些扩展点么?想找多一些开源项目来加深对spring bean初始化过程的理解。
你都说到了mybatis,那mybatis这边都不少东西了;
比较常见的
1:包扫描,mybatis自己实现了一个mapper扫描的功能,入口是MapperScannerConfigurer
2:mapper代理:MapperFactoryBean
3:BeanPostProcessor接口,这个接口的功能太多了,像@Autowrite自动注入的实现AutowiredAnnotationBeanPostProcessor,@PostConstruct的实现CommonAnnotationBeanPostProcessor
4:像mvc的入口,dispatchserServlet也实现了ApplicationContextAware接口
如果需要看启动过程做了啥,最好按照模块来,一个个的看,一把梭哈肯定是不行的
ps:Aware接口的回调,大部分也是走的BeanPostProcessor,实现类ApplicationContextAwareProcessor