SpringBoot注解
作者:互联网
自动配置源码解析
- 解析@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工程的命名需要遵循的规范
- Spring官方定义的Starter格式:Spring-boot-starter-{name}
- 非官方定义的Starter的格式:{name}-Spring-boot-starter
标签:SpringBoot,Spring,配置,扫描,导入,该类,注解 来源: https://www.cnblogs.com/zxy1314/p/16371300.html