#常见注解
1、@SpringBootApplication
@SpringBootApplication注解是SpringBoot的核心注解,用于标注程序是一个SpringBoot程序,它是一个组合注解,由多个注解组合而成
等同于以下三个注解一起使用:
@CompomemtScan:默认扫描@SpringBootApplication类所在包的同级目录以及它的子目录
@SpringBootConfiguration:继承自@Configuration,二者功能一致,标注当前类是配置类,并会把当前类内部声明的一个或多个以@Bean注解标记的方法示例纳入到spring容器中,并且示例名就是方法名
@EnableAutoConfiguration:根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web,来判断你的项目是否需要添加了webmvc和tomcat
2、条件注解
条件注解用于设置当前配置文件的加载条件,比如在某些情况下才会加载,按照使用情况,分为以下几种:
1.类条件注解
2.对象条件注解
3.属性条件注解
4.资源条件注解
5.web程序注解
6.spel表达式注解
2.1、类条件注解
@ConditionalOnClass:此注解是指定当前配置必须在指定类存在的情况下才会触发,比如redis的自动配置
@ConditionalOnMissingClass:此注解用于指定必须在缺少某个类的情况下才会生效,classpath中不存在该类时起效
2.2、对象类型注解
@ConditionalOnBean:DI容器中存在该类型Bean时起效
@ConditionalOnMissingBean:DI容器中不存在该类型Bean时起效
@ConditionalOnSingleCandidate:DI容器中该类型Bean只有一个或@Primary的只有一个时起效
2.3、属性注解
@ConditionalOnProperty:参数设置或者值一致时起效
2.4、spel表达式注解
@ConditionalOnExpression:spel表达式结果为true时起效
2.5、资源注解
@ConditionalOnResource:指定的文件存在时起效
2.6、web应用注解
@ConditionalOnWebApplication:web应用环境下起效
@ConditionalOnNotWebApplication:非web应用环境下起效