其他分享
首页 > 其他分享> > SpringBoot注解

SpringBoot注解

作者:互联网

自动配置源码解析

  1. 解析@SpringBootApplication(组合注解,jdk1.5)
    • 元注解
      • Target
      • Retention
      • Documented
      • Inherited:表示注解会被子类自动继承@SpringBootApplication
    • @SpringBootConfiguration
      • arget
      • Retention
      • Documented
      • Configuration 等价于SpringBootConfiguration
    • @EnableAutoConfiguration
      • 开启自动扫描:用户自定义的(@Controller、@Service..)、框架启动时自带配置,创建工作交给Spring
      • @AutoConfigurationPackage
        • 用户自定义的类
        • @Import(AutoConfigurationPages.Registrar.class):Registrar.registerBeanDefinitons()
      • @Import(AutoConfigurationImportSelector.class)
        • 导入框架启动时自带配置
        • AutoConfigurationImportSelector.getCandidateConfigurations()加载引入的Spring-boot-*-Autoconfig包META-INFO文件加下spring.factories文件内相关的类路径
    • @EnableXXX:开启某一项功能,简化代码导入,使用该类注解,就会自动导入某些类。该类注解时组合注解,一般都会组合@Import注解。一般导入类分三种:配置类、注册器、选择类
      • 配置类:配置类一般以Configuration结尾,且该类上会注解@Configuration,表示该类为配置类
      • 注册器:注册时一般以Registrar结尾,且该类实现了ImportBeanDefinitionRegistrar接口,表示可以在运行时动态注册指定类的实例。
      • 选择类:选择器一般以selector结尾,且该类实现了ImporSelector接口,表示当前类会根据条件选择导入的不同的类。
    • @ComponentScan
      • 配置扫描指令注解:
        • 用于扫描带有@Configuration的类;
        • 提供并执行支持xml(<context:component-scan>)即注解和xml可以一起使用。
        • 指定会被扫描的包
      • @Repeatable
        • 表明它标注的注解及其再上一级标注的注解能被多次使用,但是要指明不同属性
        • includeFilters:指定这些类所在包
        • excludeFilters:排除这些类所在包
      • 只是配置了扫描指令,没有扫描
自定义Starter

标签:SpringBoot,Spring,配置,扫描,导入,该类,注解
来源: https://www.cnblogs.com/zxy1314/p/16371300.html