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è)置某某Configuration加載到項目所需要的一些條件,或者是設(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是必填項
- matchIfMissing:當未找到對應配置是否匹配(默認不匹配)
- 常用組合:prefix+name+havingValue 判斷是否包含某屬性且屬性值與havingValue一致
例如:
//nacos的配置 @ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)
查詢包含有spring.cloud.nacos.config.enabled配置項,如果沒有找到,默認還是開啟。
5、@Profile注解
//使用方式
@Configuration
public class MainConfigOfProfile{
//@Profile關(guān)聯(lián)Yellow類,當容器環(huán)境包含該"test",才激活此注解,Yellow這個bean才會注冊到容器
@Profile("test")
@Bean
public Yellow yellow(){
return new Yellow();
}
}
//2.設(shè)置需要激活對應的@Profile
applicationContext.getEnvironment().setActiveProfiles("test1");@Profile的作用:當容器根據(jù)“標識”激活對應的@Profile注解時,其所關(guān)聯(lián)的bean類才會注冊到容器。
但如果容器不存在在對應的@Profile所配置的值時,就不生成bean實例。
6、@ConditionalOnWebApplication
當前項目是Web項目的條件下。
7、@ConditionalOnMissingBean 注解的作用
它是修飾bean的一個注解,主要實現(xiàn)的是,當你的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-11
Zookeeper中如何解決zookeeper.out文件輸出位置問題
這篇文章主要介紹了Zookeeper中如何解決zookeeper.out文件輸出位置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
SpringBoot實現(xiàn)websocket服務端及客戶端的詳細過程
文章介紹了WebSocket通信過程、服務端和客戶端的實現(xiàn),以及可能遇到的問題及解決方案,感興趣的朋友一起看看吧2024-12-12
Java mysql數(shù)據(jù)庫并進行內(nèi)容查詢實例代碼
這篇文章主要介紹了Java mysql數(shù)據(jù)庫并進行內(nèi)容查詢實例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11
關(guān)于@RequestBody和@RequestParam注解的使用詳解
這篇文章主要介紹了關(guān)于@RequestBody和@RequestParam注解的使用詳解,本文十分具有參考意義,希望可以幫助到你,如果有錯誤的地方還望不吝賜教2023-03-03
在JDK和Eclipse下如何編寫和運行Java Applet
本文主要介紹了在JDK和Eclipse的環(huán)境下如何編寫和運行Java Applet,圖文方式,適合初學者學習。2015-09-09
Jenkins系統(tǒng)如何進行數(shù)據(jù)備份
隨著我們的長期使用,Jenkins系統(tǒng)中的內(nèi)容會越來越多,特別是一些配置相關(guān)的東西,不能有任何丟失。這個時候我們就需要定期備份我們的Jenkins系統(tǒng),避免一些誤操作不小心刪除了某些重要文件,本文就將介紹下Jenkins系統(tǒng)如何進行數(shù)據(jù)備份2021-06-06

