【英雄】:@SpringBootApplication
英雄介绍:
搭建一个 SpringBoot 应用,我们引入一个注解 @SpringBootApplication,就可以成功运行。这个注解是个组合注解。其中有三个主要注解@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
技能一:@SpringBootConfiguration
技能介绍:
@SpringBootConfiguration注解继承自@Configuration注解,因此它们的作用基本一致,都是用来标注配置类,只不过@SpringBootConfiguration是SpringBoot的注解,而@Configuration是Spring提供的注解。
@SpringBootConfiguratio注解只有一个属性proxyBeanMethods,继承自@Configuration的proxyBeanMethods属性,默认为true。该属性用于指定当前配置类是否使用代理方法,以强制维护实例化Bean的生命周期。
技能二:@ComponentScan
技能介绍:
@ComponentScan注解的作用是扫描组件,同时可以配置过滤规则,将符合扫描条件的类注入SpringIoc容器中。
属性:
value和basePackages互为别名,用来指定扫描的包,对用的包扫描路径可以是一个路径也可以是多个路径组成的路径数组;
includeFilters指定扫描的时候需要包含的组件;
excludeFilter指定扫描的时候按照指定规则排除的组件;
useDefaultFilters指定是否需要使用Spring默认的扫描规则,默认为true
技能被动:
@Filter是一个声明式过滤规则的注解。它是@ComponentScan注解类中的子注解(内部注解),可以指定一些过滤规则
FilterType.ANNOTATION:按照给定的注解,过滤被指定注解标注的类。
FilterType.ASSIGNABLE_TYPE:按照给定的类型,过滤被指定的类及其子类和实现类。
FilterType.ASPECTJ:按照ASPECTJ表达式,通过pattern指定的ASPECTJ表达式。
FilterType.REGEX:按照正则表达式,通过pattern指定正则表达式。
FilterType.CUSTOM:使用自定义规则,自定义规则需要实现TypeFilter接口,重写match()方法。
技能三:@EnableAutoConfiguration
技能介绍:
启动自动配置,即根据开发人员添加的jar包来判断并加载项目的默认配置。