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è)計(jì)該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)文章
Netty源碼分析NioEventLoop處理IO事件相關(guān)邏輯
這篇文章主要介紹了Netty源碼分析NioEventLoop處理IO事件相關(guān)邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換
這篇文章主要為大家詳細(xì)介紹了如何使用SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05
Logback在SpringBoot中的詳細(xì)配置教程
Spring Boot 默認(rèn)會加載 classpath 下的 logback-spring.xml(推薦)或 logback.xml 作為 Logback 的配置文件,下面我們來看看具體的配置教程吧2025-05-05
web中拖拽排序和java后臺交互實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于web中拖拽排序和java后臺交互實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
關(guān)于注解FeignClient的使用規(guī)范
這篇文章主要介紹了關(guān)于注解FeignClient的使用規(guī)范,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Disconf實(shí)現(xiàn)分布式配置管理的原理與設(shè)計(jì)
這篇文章主要為大家介紹了Disconf實(shí)現(xiàn)分布式配置管理的原理與設(shè)計(jì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03

