Springboot常用注解及作用說明
Springboot常用注解
在開發(fā)中看到一些定義的啟動器Configuration
@Configuration @ConditionalOnClass(JestClient.class) @EnableConfigurationProperties(ConfigBean.class) @AutoConfigureAfter(GsonAutoConfiguration.class) public class JestAutoConfiguration { }
或者我們經(jīng)常使用的PageHelper
@Configuration @ConditionalOnBean(SqlSessionFactory.class) @EnableConfigurationProperties(PageHelperProperties.class) @AutoConfigureAfter(MybatisAutoConfiguration.class) public class PageHelperAutoConfiguration { }
其實(shí)上面的注解都是為了設(shè)置某某Configuration加載到項(xiàng)目所需要的一些條件,或者是設(shè)計該Configuration加載的先后順序,下面看下這些注解的含義
1、@ConditionalOnClass(KafkaTemplate.class)
這個注解通俗的說就是Spring工程中引用了KafkaTemplate類的包,才會構(gòu)建這個bean
2、@AutoConfigureBefore 和 @AutoConfigureAfter
//使用方式 @AutoConfigureBefore(AAAA.class) public class CCCC { //說明 CCCC將會在AAAA之前加載 } @AutoConfigureAfter(AAAA.class) public class CCCC { //說明 CCCC將會在AAAA之后加載 }
3、@EnableConfigurationProperties
//使用方式 @ConfigurationProperties(prefix = "spring.elasticsearch.jest") public class ConfigBean { } //僅通過@ConfigurationProperties是?法完成ConfigBean在spring中使?的 @Configuration @EnableConfigurationProperties({ConfigBean.class}) public class JestAutoConfiguration { }
?句話描述@EnableConfigurationProperties的作用:把jar里面的@ConfigurationProperties的類注?到spring中使?
4、@ConditionalOnProperty注解
//使用方式 @ConditionalOnProperty(prefix = "email",name= "enable",havingValue = "true") //必須yml中必須包含 prefix.enable=true 才會生效
一般修飾在帶有@Configuration注解的類上面,控制配置類是否生效,可以使用@ConditionalOnProperty注解來控制
- name或value是必填項(xiàng)
- matchIfMissing:當(dāng)未找到對應(yīng)配置是否匹配(默認(rèn)不匹配)
- 常用組合:prefix+name+havingValue 判斷是否包含某屬性且屬性值與havingValue一致
例如:
//nacos的配置 @ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)
查詢包含有spring.cloud.nacos.config.enabled配置項(xiàng),如果沒有找到,默認(rèn)還是開啟。
5、@Profile注解
//使用方式 @Configuration public class MainConfigOfProfile{ //@Profile關(guān)聯(lián)Yellow類,當(dāng)容器環(huán)境包含該"test",才激活此注解,Yellow這個bean才會注冊到容器 @Profile("test") @Bean public Yellow yellow(){ return new Yellow(); } } //2.設(shè)置需要激活對應(yīng)的@Profile applicationContext.getEnvironment().setActiveProfiles("test1");
@Profile的作用:當(dāng)容器根據(jù)“標(biāo)識”激活對應(yīng)的@Profile注解時,其所關(guān)聯(lián)的bean類才會注冊到容器。
但如果容器不存在在對應(yīng)的@Profile所配置的值時,就不生成bean實(shí)例。
6、@ConditionalOnWebApplication
當(dāng)前項(xiàng)目是Web項(xiàng)目的條件下。
7、@ConditionalOnMissingBean 注解的作用
它是修飾bean的一個注解,主要實(shí)現(xiàn)的是,當(dāng)你的bean被注冊之后,如果而注冊相同類型的bean就不會成功,它會保證Bean在容器中只有一個
到此這篇關(guān)于Springboot常用注解及作用說明的文章就介紹到這了,更多相關(guān)Springboot常用注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談@RequestParam(required = true)的誤區(qū)
這篇文章主要介紹了@RequestParam(required = true)的誤區(qū),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Zookeeper中如何解決zookeeper.out文件輸出位置問題
這篇文章主要介紹了Zookeeper中如何解決zookeeper.out文件輸出位置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04SpringBoot實(shí)現(xiàn)websocket服務(wù)端及客戶端的詳細(xì)過程
文章介紹了WebSocket通信過程、服務(wù)端和客戶端的實(shí)現(xiàn),以及可能遇到的問題及解決方案,感興趣的朋友一起看看吧2024-12-12Java mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢實(shí)例代碼
這篇文章主要介紹了Java mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11關(guān)于@RequestBody和@RequestParam注解的使用詳解
這篇文章主要介紹了關(guān)于@RequestBody和@RequestParam注解的使用詳解,本文十分具有參考意義,希望可以幫助到你,如果有錯誤的地方還望不吝賜教2023-03-03在JDK和Eclipse下如何編寫和運(yùn)行Java Applet
本文主要介紹了在JDK和Eclipse的環(huán)境下如何編寫和運(yùn)行Java Applet,圖文方式,適合初學(xué)者學(xué)習(xí)。2015-09-09Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份
隨著我們的長期使用,Jenkins系統(tǒng)中的內(nèi)容會越來越多,特別是一些配置相關(guān)的東西,不能有任何丟失。這個時候我們就需要定期備份我們的Jenkins系統(tǒng),避免一些誤操作不小心刪除了某些重要文件,本文就將介紹下Jenkins系統(tǒng)如何進(jìn)行數(shù)據(jù)備份2021-06-06