Springboot⾃动配置常⽤25个注解
Spring Boot 最核⼼的 25 个注解
1、@SpringBootApplication
这是 Spring Boot 最最最核⼼的注解,⽤在 Spring Boot 主类上,标识这是⼀个 Spring Boot 应⽤,⽤来开启 Spring Boot 的各项能⼒。
其实这个注解就是 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 这三个注解的组合,也可以⽤这三个注解来代替 @SpringBootApplication 注解。
2、@EnableAutoConfiguration
允许 Spring Boot ⾃动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。
如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。
3、@Configuration
这是 Spring 3.0 添加的⼀个注解,⽤来代替 l 配置⽂件,所有这个配置⽂件⾥⾯能做到的事情都可以通过这个注解所在类来进⾏注册。
4、@SpringBootConfiguration
这个注解就是 @Configuration 注解的变体,只是⽤来修饰是 Spring Boot 配置⽽已,或者可利于 Spring Boot 后续的扩展。
5、@ComponentScan
这是 Spring 3.1 添加的⼀个注解,⽤来代替配置⽂件中的 component-scan 配置,开启组件扫描,即⾃动扫描包路径下的
@Component 注解进⾏注册 bean 实例到 context 中。
前⾯ 5 个注解可以在这篇⽂章《》中了解更多细节的。
6、@Conditional
这是 Spring 4.0 添加的新注解,⽤来标识⼀个 Spring Bean 或者  Configuration 配置⽂件,当满⾜指定的条件才开启配置。
7、@ConditionalOnBean
组合 @Conditional 注解,当容器中有指定的 Bean 才开启配置。
8、@ConditionalOnMissingBean
组合 @Conditional 注解,和 @ConditionalOnBean 注解相反,当容器中没有指定的 Bean 才开启配置。
9、@ConditionalOnClass
组合 @Conditional 注解,当容器中有指定的 Class 才开启配置。
10、@ConditionalOnMissingClass
组合 @Conditional 注解,和 @ConditionalOnMissingClass 注解相反,当容器中没有指定的 Class 才开启配置。
11、@ConditionalOnWebApplication
组合 @Conditional 注解,当前项⽬类型是 WEB 项⽬才开启配置。
当前项⽬有以下 3 种类型。
enum Type {
/**
* Any web application will match.
*/
ANY,
/**
* Only servlet-based web application will match.
*/
SERVLET,
spring boot是啥/**
* Only reactive-based web application will match.
*/
REACTIVE
}
12、@ConditionalOnNotWebApplication
组合 @Conditional 注解,和 @ConditionalOnWebApplication 注解相反,当前项⽬类型不是 WEB 项⽬才开启配置。
13、@ConditionalOnProperty
组合 @Conditional 注解,当指定的属性有指定的值时才开启配置。
14、@ConditionalOnExpression
组合 @Conditional 注解,当 SpEL 表达式为 true 时才开启配置。
15、@ConditionalOnJava
组合 @Conditional 注解,当运⾏的 Java JVM 在指定的版本范围时才开启配置。
16、@ConditionalOnResource
组合 @Conditional 注解,当类路径下有指定的资源才开启配置。
17、@ConditionalOnJndi
组合 @Conditional 注解,当指定的 JNDI 存在时才开启配置。
18、@ConditionalOnCloudPlatform
组合 @Conditional 注解,当指定的云平台激活时才开启配置。
19、@ConditionalOnSingleCandidate
组合 @Conditional 注解,当指定的 class 在容器中只有⼀个 Bean,或者同时有多个但为⾸选时才开启配置。
20、@ConfigurationProperties
⽤来加载额外的配置(如 .properties ⽂件),可⽤在 @Configuration 注解类,或者 @Bean 注解⽅法上⾯。
关于这个注解的⽤法可以参考《》这篇⽂章。
21、@EnableConfigurationProperties
⼀般要配合 @ConfigurationProperties 注解使⽤,⽤来开启对 @ConfigurationProperties 注解配置 Bean 的⽀持。22、@AutoConfigureAfter
⽤在⾃动配置类上⾯,表⽰该⾃动配置类需要在另外指定的⾃动配置类配置完之后。
如 Mybatis 的⾃动配置类,需要在数据源⾃动配置类之后。
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class MybatisAutoConfiguration {
23、@AutoConfigureBefore
这个和 @AutoConfigureAfter 注解使⽤相反,表⽰该⾃动配置类需要在另外指定的⾃动配置类配置之
前。
24、@Import
这是 Spring 3.0 添加的新注解,⽤来导⼊⼀个或者多个 @Configuration 注解修饰的类,这在 Spring Boot ⾥⾯应⽤很多。
25、@ImportResource
这是 Spring 3.0 添加的新注解,⽤来导⼊⼀个或者多个 Spring  配置⽂件,这对 Spring Boot 兼容⽼项⽬⾮常有⽤,因为有些配置⽆法通过 Java Config 的形式来配置就只能⽤这个注解来导⼊。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。