最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用@ConditionalOnExpression決定是否生效注釋

 更新時(shí)間:2021年06月22日 10:07:59   作者:從心歸零  
這篇文章主要介紹了如何使用@ConditionalOnExpression決定是否生效注釋的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@ConditionalOnExpression決定是否生效注釋

因?yàn)橛昧撕脦滋紫㈥?duì)列,我想在配置文件中配置如何開(kāi)關(guān)切換消息隊(duì)列。

生產(chǎn)者還好,我只要決定讀取配置文件決定用哪個(gè)生產(chǎn)者發(fā)送消息就行,但是rabbitmq的消費(fèi)者是用注解啟動(dòng)的,所以這個(gè)時(shí)候就用到了@ConditionalOnExpression

#消費(fèi)者總開(kāi)關(guān),0關(guān)1開(kāi)
mq.cumsumer.enabled=1
#rocketmq消費(fèi)者開(kāi)關(guān),true開(kāi)啟,false關(guān)閉
rocketmq.comsumer.enabled=false
#rabbitmq消費(fèi)者開(kāi)關(guān),true開(kāi)啟,false關(guān)閉
rabbitmq.comsumer.enabled=true
@Component
@RabbitListener(queues = "monitorDataQueue")
@ConditionalOnExpression("${mq.cumsumer.enabled:0}==1&&${rabbitmq.comsumer.enabled:false}")

布爾值和數(shù)字都還好說(shuō),但是字符串相等我搞了半天都不行,最后終于找到了資料

https://stackoverflow.com/questions/26451321/spring-boot-conditionalonproperty-or-conditionalonexpression

#選擇消費(fèi)者,rocketmq,rabbitmq
mq.comsumer=rabbitmq
@Component
@RabbitListener(queues = "monitorDataQueue")
@ConditionalOnExpression("'${mq.comsumer}'.equals('rabbitmq')")

一般來(lái)說(shuō)這三種用法已經(jīng)很靈活了,應(yīng)該夠用了

注意

${rabbitmq.consumer.enabled:false}

代表的是當(dāng)

rabbitmq.consumer.enabled

不存在時(shí)默認(rèn)為后面的值,所以如果是boolean值的話(huà)直接使用

${rabbitmq.comsumer.enabled}

就行啦~

@ConditionalOnExpression 控制是否初始bean

我們有時(shí)候會(huì)遇到一些bean希望通過(guò)注冊(cè)中心控制是否被初始化,@ConditionalOnExpression可以幫我們辦到。這里寫(xiě)過(guò)小例子。

1、這個(gè)配置是我們上傳文件指定臨時(shí)目錄的配置

這里通過(guò)這個(gè)查看是否注入成功。在我們想要注入控制注解添加 @ConditionalOnExpression("${is.inject:true}"),通過(guò)配置文件來(lái)控制是否注入。

@Configuration
public class PropertyConfig {
    @Bean
    @ConditionalOnExpression("${is.inject:true}")
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation("C:\\Users\\Administrator\\Desktop\\deploy");
        return factory.createMultipartConfig();
    }
}

2、在啟動(dòng)類(lèi)添加如下代碼進(jìn)行測(cè)試

@SpringBootApplication
public class DynamicElasticjobApplication implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(DynamicElasticjobApplication.class, args);
    }
    @Autowired
    private ApplicationContext applicationContext;
    @Override
    public void run(String... args)  {
        MultipartConfigElement bean = applicationContext.getBean(MultipartConfigElement.class);
        System.out.println("::::::::::::::"+bean.getLocation());
    }
}

3、啟動(dòng)為Application類(lèi),說(shuō)明@Bean將其注入

在這里插入圖片描述

4、當(dāng)在配置文件application.properties中寫(xiě) is.inject=false時(shí)

此時(shí)結(jié)果為,說(shuō)明@Bean并沒(méi)有將配置中的注入

在這里插入圖片描述

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea中項(xiàng)目文件目錄消失如何解決

    idea中項(xiàng)目文件目錄消失如何解決

    這篇文章主要介紹了idea中項(xiàng)目文件目錄消失的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解

    Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解

    這篇文章主要介紹了Java弱鍵集合WeakHashMap及ConcurrentCache原理詳解,基于哈希表的Map接口實(shí)現(xiàn),支持null鍵和值,但是WeakHashMap具有弱鍵,可用來(lái)實(shí)現(xiàn)緩存存儲(chǔ),在進(jìn)行GC的時(shí)候會(huì)自動(dòng)回收鍵值對(duì),需要的朋友可以參考下
    2023-09-09
  • IDEA2020.3創(chuàng)建web工程的完整步驟

    IDEA2020.3創(chuàng)建web工程的完整步驟

    這篇文章主要給大家介紹了關(guān)于IDEA2020.3創(chuàng)建web工程的完整步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Jmeter設(shè)置全局變量token過(guò)程圖解

    Jmeter設(shè)置全局變量token過(guò)程圖解

    這篇文章主要介紹了Jmeter設(shè)置全局變量token過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 淺析Spring4新特性概述

    淺析Spring4新特性概述

    Spring 4.1并沒(méi)有特別吸引眼球的地方,主要還是增強(qiáng)和一些依賴(lài)的版本升級(jí)。本文重點(diǎn)給大家介紹Spring4新特性概述,感興趣的朋友一起看看吧
    2017-09-09
  • Java文件操作之按行讀取文件和遍歷目錄的方法

    Java文件操作之按行讀取文件和遍歷目錄的方法

    這篇文章主要介紹了Java文件操作之按行讀取文件和遞歸遍歷目錄的方法,遍歷目錄文中分別舉了遞歸和非遞歸的例子,需要的朋友可以參考下
    2016-03-03
  • drools規(guī)則動(dòng)態(tài)化實(shí)踐解析

    drools規(guī)則動(dòng)態(tài)化實(shí)踐解析

    這篇文章主要為大家介紹了drools規(guī)則動(dòng)態(tài)化實(shí)踐解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • SpringBoot淺析Redis訪(fǎng)問(wèn)操作使用

    SpringBoot淺析Redis訪(fǎng)問(wèn)操作使用

    Redis是一個(gè)速度非??斓姆顷P(guān)系數(shù)據(jù)庫(kù)(Non-Relational?Database),它可以存儲(chǔ)鍵(Key)與多種不同類(lèi)型的值(Value)之間的映射(Mapping),可以將存儲(chǔ)在內(nèi)存的鍵值對(duì)數(shù)據(jù)持久化到硬盤(pán),可以使用復(fù)制特性來(lái)擴(kuò)展讀性能,還可以使用客戶(hù)端分片來(lái)擴(kuò)展寫(xiě)性能
    2022-11-11
  • 你知道Spring如何解決所有循環(huán)依賴(lài)的嗎

    你知道Spring如何解決所有循環(huán)依賴(lài)的嗎

    這篇文章主要來(lái)和大家聊聊Spring?能解決所有循環(huán)依賴(lài)嗎,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Spring有一定的幫助,需要的小伙伴可以參考一下
    2023-07-07
  • mybatis如何批量添加一對(duì)多中間表

    mybatis如何批量添加一對(duì)多中間表

    這篇文章主要介紹了mybatis如何批量添加一對(duì)多中間表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論

宣恩县| 五莲县| 温泉县| 阿勒泰市| 赣州市| 阳泉市| 潜江市| 垫江县| 屯昌县| 麦盖提县| 运城市| 小金县| 通城县| 麻城市| 清原| 蓝田县| 株洲市| 彭泽县| 乐陵市| 汤原县| 南皮县| 万载县| 永嘉县| 潼南县| 南汇区| 海丰县| 张掖市| 竹山县| 右玉县| 双鸭山市| 桃江县| 克东县| 清原| 吴桥县| 白山市| 阜康市| 丁青县| 囊谦县| 丹江口市| 堆龙德庆县| 准格尔旗|