zoukankan      html  css  js  c++  java
  • spring @Enable*注解工作原理

    1.@enable*注解的工作原理

    通过观察这些@enable*注解的源码,我们发现所有注解都有一个@Import注解,这个注解用来导入配置类的,这也就意味着这些自动开启的实现是导入了一些自动配置的bean.

    这些导入的配置方式分为以下三种类型.

    第一类:直接导入配置类

    直接导入配置类SchedulingConfiguration,这个类注解了@Configuration,且注册了一个scheduledAnnotationProcessor的bean,源码如下

    第二类:依据条件选择配置类

    AsyncConfigurationSelector选择类源码如下:

    可以看出AdviceMode为proxy,则返回ProxyAsyncConfiguration配置类;若AdviceMode为aspectj,则返回AspectJAsyncConfiguration配置类

    第三类:动态注册Bean

    AspectJAutoProxyRegistrar实现了ImportBeanDefinitionRegistrar接口,ImportBeanDefinitionRegistrar的作用是在运行时自动添加Bean到已有的配置类,通过重写方法

    其中,AnnotationMetadata参数用来获得当前配置类上的注解:BeanDefinitionRegistry参数用来注册Bean,源码如下

    参考书籍:王云飞的springBoot实战

  • 相关阅读:
    [Gamma阶段]展示博客
    [Gamma阶段]测试报告
    软工实践个人总结
    小组最终答辩
    第08组 Beta版本演示
    第08组 Beta冲刺(5/5)
    第08组 Beta冲刺(4/5)
    第08组 Beta冲刺(2/5)
    第08组 Beta冲刺(3/5)
    第08组 Beta冲刺(1/5)
  • 原文地址:https://www.cnblogs.com/kiwi-deng/p/11189239.html
Copyright © 2011-2022 走看看