1,声明式注解EnableTransactionManagement分析
1)EnableTransactionManagement注解定义
image.png
2)收集需要导入的配置类
image.png
3)ConfigurationClassParser的processImports调用selectImports方法
image.png
4)解析Configuration类,根据@Bean生成BeanMethod
image.png
5)ConfigurationClassBeanDefinitionReader将BeanMethod转化为BeanDefinition
image.png
6)ApplicationContext refresh将BeanDefinition实例化为Bean
refresh是Spring ioc 启动入口。
image.png
image.png
2,自定义EnableXXX
1)定义期望被容器管理的功能类
image.png
2)定义配置类和bean
image.png
3)自定义注解和ImportSelector
image.png
image.png
3,使用EnableXXX
1)引入依赖
image.png
2)开启注解
image.png
3)从容器中获取并使用bean
image.png
网友评论