springboot的重要注解 @SpringBootApplication要以下将会介绍图中所标注注解的含义。
-
@Inherited:
此解释引用辛德瑞拉Dangerous 的简书https://www.jianshu.com/p/4a3ffb79c10e -
@SpringBootConfiguration:
该注解是继承了@Configuration,@Configuration能干嘛它就能干嘛。 -
@EnableAutoConfiguration:
springboot的自动配置原理 -
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
ComponetScan 定义扫描规则
- value:指定要扫描的包
- excludeFilters=Filter[] 指定扫描的时候按照什么规则排除哪些组件。
- includeFilters=Filter[] 指定扫描的时候只需要包含哪些组件。(注意的是包扫描默认的是扫描所有的,也就是use-default-filters=”true”,所以需要设置为false。 这个和配置文件一样)
- FilterType.ANNOTATION :按照注解的方式
- FilterType.ASSIGNABLE_TYPE:按照给定的类型
- FilterType.CUSTOM:使用自定义规则。 (能使用该方法的必须得是实现了TypeFilter这个接口的类,例如@springbootapplication里的示例,解释如下)
- FilterType.ASPECTJ:使用ASPECTJ表达式(基本用不到)
- FilterType.REGEX :使用正则表达式
所以springboot里的该注解的意思是不扫描属于TypeExcludeFilter类型的类和属于AutoConfigurationExcludeFilter类型的类。