欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring在@ConditionalOnProperty注解使用詳解

 更新時(shí)間:2023年11月22日 09:57:29   作者:杜小舟  
這篇文章主要介紹了Spring在@ConditionalOnProperty注解使用詳解,@ConditionalOnProperty注解是Spring Boot的條件注解,主要用法是根據(jù)配置文件中的屬性來控制某個(gè)配置類是否生效,或者控制某個(gè)Bean是否被創(chuàng)建,需要的朋友可以參考下

簡(jiǎn)單介紹

@ConditionalOnProperty注解是Spring Boot的條件注解,主要用法是根據(jù)配置文件中的屬性來控制某個(gè)配置類是否生效,或者控制某個(gè)Bean是否被創(chuàng)建。

就比如我們常用的在yml中配置

server:
  port: 8080

能夠起到啟動(dòng)服務(wù)以8080端口啟動(dòng),而@ConditionalOnProperty注解則是符合條件注入到Bean中,下面結(jié)合一些案例代碼做出介紹。

@ConditionalOnProperty 注解中的屬性介紹

屬性名稱介紹
prefix指定屬性前綴
name指定屬性名稱
havingValue用來指定期望的屬性值,如果配置的值等于期望值則執(zhí)行
matchIfMissing當(dāng)配置文件中不存在指定屬性時(shí)的處理方式,處理方式有兩個(gè),分別是 true 和 false,
true 是不存在指定屬性時(shí)執(zhí)行,false 是不執(zhí)行,默認(rèn)是 false

簡(jiǎn)單配置案例代碼

控制配置類

yml中配置以下信息:

biz:
  access: true

下面是配置類的代碼實(shí)現(xiàn):

@Configuration
@ConditionalOnProperty(prefix = "biz", name = "access", havingValue = "true")
public class AccessConfiguration implements HandlerInterceptor {
}

這里需要注意的是,@ConditionalOnProperty注解只代表符合條件就執(zhí)行注入,不代表它有@Configuration注解的作用,所以想控制一個(gè)配置類是就需要有@ConditionalOnProperty和@Configuration注解。

控制Bean創(chuàng)建

那么當(dāng)我想想控制配置類中的某個(gè)Bean是否注入時(shí)該怎么做呢,看下面代碼示例: yml中配置以下信息:

biz:
  access: true
@Configuration
public class AccessConfiguration implements HandlerInterceptor {
	
	@Bean
	@ConditionalOnProperty(prefix = "biz", name = "access", havingValue = "true")
    public YourBeanFile preHandle() {
        return new YourBeanFile();
    }

}

這樣就能控制某個(gè)Bean的創(chuàng)建了。

復(fù)雜配置案例代碼

控制配置類

yml中配置以下信息:

biz:
  access:
    token: true

下面是代碼實(shí)現(xiàn):

@Configuration
@ConditionalOnProperty(prefix = "biz.access", name = "token", havingValue = "true")
public class AccessConfiguration implements HandlerInterceptor {
}

可以看到復(fù)雜的配置與簡(jiǎn)單的配置有些不太一樣,最后一個(gè)屬性才是在@ConditionalOnProperty注解的name屬性上。

控制Bean創(chuàng)建

yml中配置以下信息:

biz:
  access:
    token: true

代碼實(shí)現(xiàn):

@Configuration
public class AccessConfiguration implements HandlerInterceptor {
	
	@Bean
	@ConditionalOnProperty(prefix = "biz.access", name = "token", havingValue = "true")
    public YourBeanFile preHandle() {
        return new YourBeanFile();
    }

}

到此這篇關(guān)于Spring在@ConditionalOnProperty注解使用詳解的文章就介紹到這了,更多相關(guān)@ConditionalOnProperty注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA修改新建文件自動(dòng)生成注釋的user名

    IntelliJ IDEA修改新建文件自動(dòng)生成注釋的user名

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA修改新建文件自動(dòng)生成注釋的user名,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 解決idea找不到類could not find artifact問題

    解決idea找不到類could not find artifact問題

    本文總結(jié)了解決Java項(xiàng)目中找不到類的問題的常見解決方案,包括刷新Maven項(xiàng)目、清理IDEA緩存、Maven Clean Install、重新Package、解決依賴沖突和手動(dòng)導(dǎo)入依賴包等方法
    2025-01-01
  • 詳解java面試題中的i++和++i

    詳解java面試題中的i++和++i

    這篇文章主要介紹了java面試題中的i++和++i的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案

    Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案

    這篇文章主要介紹了Spring Cloud中使用Feign,@RequestBody無法繼承的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java+jdbc+mysql+socket搭建局域網(wǎng)聊天室

    java+jdbc+mysql+socket搭建局域網(wǎng)聊天室

    這篇文章主要為大家詳細(xì)介紹了java+jdbc+mysql+socket搭建局域網(wǎng)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • springboot帶有進(jìn)度條的上傳功能完整實(shí)例

    springboot帶有進(jìn)度條的上傳功能完整實(shí)例

    這篇文章主要介紹了springboot帶有進(jìn)度條的上傳功能,結(jié)合完整實(shí)例形式分析了springboot帶進(jìn)度條上傳的原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Spring Boot實(shí)現(xiàn)跨域訪問實(shí)現(xiàn)代碼

    Spring Boot實(shí)現(xiàn)跨域訪問實(shí)現(xiàn)代碼

    本文通過實(shí)例代碼給大家介紹了Spring Boot實(shí)現(xiàn)跨域訪問的知識(shí),然后在文中給大家介紹了spring boot 服務(wù)器端設(shè)置允許跨域訪問 的方法,感興趣的朋友一起看看吧
    2017-07-07
  • 利用Java如何獲取Mybatis動(dòng)態(tài)生成的sql接口實(shí)現(xiàn)

    利用Java如何獲取Mybatis動(dòng)態(tài)生成的sql接口實(shí)現(xiàn)

    MyBatis 的強(qiáng)大特性之一便是它的動(dòng)態(tài)SQL,下面這篇文章主要給大家介紹了關(guān)于利用Java如何獲取Mybatis動(dòng)態(tài)生成的sql接口實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Java Swing JCheckBox復(fù)選框的實(shí)現(xiàn)方法

    Java Swing JCheckBox復(fù)選框的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java Swing JCheckBox復(fù)選框的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JAVA實(shí)現(xiàn)讀取txt文件內(nèi)容的方法

    JAVA實(shí)現(xiàn)讀取txt文件內(nèi)容的方法

    本篇文章主要介紹了JAVA實(shí)現(xiàn)讀取txt文件內(nèi)容的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01

最新評(píng)論