SpringBoot - 自定义@EnableXXX

2019-11-14  本文已影响0人  沐兮_d64c

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
上一篇下一篇

猜你喜欢

热点阅读