有什么开源框架组件在和spring整合的时候,使用了spring的Bean初始化过程提供的一下扩展特性的?
如题,有什么开源框架组件在和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初始化过程的理解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你都说到了mybatis,那mybatis这边都不少东西了;
比较常见的
1:包扫描,mybatis自己实现了一个mapper扫描的功能,入口是MapperScannerConfigurer
2:mapper代理:MapperFactoryBean
3:BeanPostProcessor接口,这个接口的功能太多了,像@Autowrite自动注入的实现AutowiredAnnotationBeanPostProcessor,@PostConstruct的实现CommonAnnotationBeanPostProcessor
4:像mvc的入口,dispatchserServlet也实现了ApplicationContextAware接口
如果需要看启动过程做了啥,最好按照模块来,一个个的看,一把梭哈肯定是不行的
ps:Aware接口的回调,大部分也是走的BeanPostProcessor,实现类ApplicationContextAwareProcessor
随便一个接口的实现类都能多到怀疑人生。重点还是关注接口的作用的吧。spring的主要扩展接口虽然不多,但二级接口也是挺多了,然后关注一下框架内部的实现类。至于各个其他框架的实现类,那肯定是千变万化,永远都有新花样。
可以看看feign的源码,从@EnableFeignClients的@Import注解开始看,有使用各种aware processor factoryBean和ImportBeanDefinitionRegistrar等来做到动态扫描类注册bean什么的