Spring Boot 最核心的 25 個注解
1棺榔、@SpringBootApplication
這是 Spring Boot 最最最核心的注解侦铜,用在 Spring Boot 主類上熊镣,標(biāo)識這是一個 Spring Boot 應(yīng)用庄呈,用來開啟 Spring Boot 的各項能力。
其實這個注解就是 @SpringBootConfiguration
捏题、@EnableAutoConfiguration
夏伊、@ComponentScan
這三個注解的組合纵菌,也可以用這三個注解來代替 @SpringBootApplication
注解。
2玄柠、@EnableAutoConfiguration
允許 Spring Boot 自動配置注解突梦,開啟這個注解之后,Spring Boot 就能根據(jù)當(dāng)前類路徑下的包或者類來配置 Spring Bean羽利。
如:當(dāng)前類路徑下有 Mybatis 這個 JAR 包宫患,MybatisAutoConfiguration
注解就能根據(jù)相關(guān)參數(shù)來配置 Mybatis 的各個 Spring Bean。
3这弧、@Configuration
這是 Spring 3.0 添加的一個注解娃闲,用來代替 applicationContext.xml 配置文件,所有這個配置文件里面能做到的事情都可以通過這個注解所在類來進行注冊匾浪。
4皇帮、@SpringBootConfiguration
這個注解就是 @Configuration 注解的變體,只是用來修飾是 Spring Boot 配置而已蛋辈,或者可利于 Spring Boot 后續(xù)的擴展玲献。
5、@ComponentScan
這是 Spring 3.1 添加的一個注解梯浪,用來代替配置文件中的 component-scan 配置捌年,開啟組件掃描,即自動掃描包路徑下的 @Component 注解進行注冊 bean 實例到 context 中挂洛。
前面 5 個注解可以在這篇文章《Spring Boot 最核心的 3 個注解詳解》中了解更多細(xì)節(jié)的礼预。
6、@Conditional
這是 Spring 4.0 添加的新注解虏劲,用來標(biāo)識一個 Spring Bean 或者 Configuration 配置文件托酸,當(dāng)滿足指定的條件才開啟配置。
7柒巫、@ConditionalOnBean
組合 @Conditional
注解励堡,當(dāng)容器中有指定的 Bean 才開啟配置。
8堡掏、@ConditionalOnMissingBean
組合 @Conditional
注解应结,和 @ConditionalOnBean
注解相反,當(dāng)容器中沒有指定的 Bean 才開啟配置。
9鹅龄、@ConditionalOnClass
組合 @Conditional
注解揩慕,當(dāng)容器中有指定的 Class 才開啟配置。
10扮休、@ConditionalOnMissingClass
組合 @Conditional
注解迎卤,和 @ConditionalOnMissingClass
注解相反,當(dāng)容器中沒有指定的 Class 才開啟配置玷坠。
11蜗搔、@ConditionalOnWebApplication
組合 @Conditional
注解,當(dāng)前項目類型是 WEB 項目才開啟配置八堡。
當(dāng)前項目有以下 3 種類型碍扔。
enum Type {
/**
* Any web application will match.
*/
ANY,
/**
* Only servlet-based web application will match.
*/
SERVLET,
/**
* Only reactive-based web application will match.
*/
REACTIVE
}
12、@ConditionalOnNotWebApplication
組合 @Conditional
注解秕重,和 @ConditionalOnWebApplication
注解相反不同,當(dāng)前項目類型不是 WEB 項目才開啟配置。
13溶耘、@ConditionalOnProperty
組合 @Conditional
注解二拐,當(dāng)指定的屬性有指定的值時才開啟配置。
14凳兵、@ConditionalOnExpression
組合 @Conditional
注解百新,當(dāng) SpEL 表達(dá)式為 true 時才開啟配置。
15庐扫、@ConditionalOnJava
組合 @Conditional
注解饭望,當(dāng)運行的 Java JVM 在指定的版本范圍時才開啟配置。
16形庭、@ConditionalOnResource
組合 @Conditional
注解铅辞,當(dāng)類路徑下有指定的資源才開啟配置。
17萨醒、@ConditionalOnJndi
組合 @Conditional
注解斟珊,當(dāng)指定的 JNDI 存在時才開啟配置。
18富纸、@ConditionalOnCloudPlatform
組合 @Conditional
注解囤踩,當(dāng)指定的云平臺激活時才開啟配置。
19晓褪、@ConditionalOnSingleCandidate
組合 @Conditional
注解堵漱,當(dāng)指定的 class 在容器中只有一個 Bean,或者同時有多個但為首選時才開啟配置涣仿。
20勤庐、@ConfigurationProperties
用來加載額外的配置(如 .properties 文件),可用在 @Configuration
注解類,或者 @Bean
注解方法上面埃元。
關(guān)于這個注解的用法可以參考《
Spring Boot讀取配置的幾種方式》這篇文章涝涤。
21媚狰、@EnableConfigurationProperties
一般要配合 @ConfigurationProperties
注解使用岛杀,用來開啟對 @ConfigurationProperties
注解配置 Bean 的支持。
22崭孤、@AutoConfigureAfter
用在自動配置類上面类嗤,表示該自動配置類需要在另外指定的自動配置類配置完之后。
如 Mybatis 的自動配置類辨宠,需要在數(shù)據(jù)源自動配置類之后遗锣。
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class MybatisAutoConfiguration {
23、@AutoConfigureBefore
這個和 @AutoConfigureAfter
注解使用相反嗤形,表示該自動配置類需要在另外指定的自動配置類配置之前精偿。
24、@Import
這是 Spring 3.0 添加的新注解赋兵,用來導(dǎo)入一個或者多個 @Configuration
注解修飾的類笔咽,這在 Spring Boot 里面應(yīng)用很多。
25霹期、@ImportResource
這是 Spring 3.0 添加的新注解叶组,用來導(dǎo)入一個或者多個 Spring 配置文件,這對 Spring Boot 兼容老項目非常有用历造,因為有些配置無法通過 Java Config 的形式來配置就只能用這個注解來導(dǎo)入甩十。
作者:Java技術(shù)棧
鏈接:http://www.reibang.com/p/2be4524fe5a8
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處吭产。