Springboot實現(xiàn)根據(jù)條件切換注入不同實現(xiàn)類的示例代碼
最近有個一需求需要根據(jù)外界環(huán)境的屬性(操作系統(tǒng) || yml屬性 || 其他bean的狀態(tài)) 來實現(xiàn)啟動時注入兩套不同的實現(xiàn)類, 實現(xiàn)切換.
實現(xiàn)啟動時條件注入分2步:
第一步 使用@Conditional(參數(shù)為 True false條件實現(xiàn)類 需要你自己實現(xiàn))注解
@Conditional(RabbitMqCondition.class) public class RabbitmqSMSMsgServiceImpl extends RabbitmqBasicMsgService { // @Autowired(required = false) // DefaultMQProducer producer; @Override public void sendToYourTaskQueue_Step2(PnsMessage pnsMessage) { // TODO rabbitmq 實現(xiàn)SMS消息推送 } }
第二步 實現(xiàn)自定義的條件類接口Condition 實現(xiàn)matches方法:
我這里判斷的是spring配置文件里的屬性, 其實可以判斷非常廣泛的東西, 并不只限于屬性.
public class RabbitMqCondition implements Condition { @Override public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { return "rabbitmq".equals(conditionContext.getEnvironment().getProperty("mq.type")); } }
application.yml 可以切換屬性
mq: type: rabbitmq
如果要是有多個符合條件的bean 利用@Service(value=“區(qū)別開來”)
到此這篇關于Springboot實現(xiàn)根據(jù)條件切換注入不同實現(xiàn)類的示例代碼的文章就介紹到這了,更多相關Springboot 根據(jù)條件切換注入不同實現(xiàn)類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java?數(shù)據(jù)結構與算法系列精講之單向鏈表
單向鏈表特點是鏈表的鏈接方向是單向的,訪問要通過順序讀取從頭部開始。鏈表是使用指針構造的列表,是由一個個結點組裝起來的,又稱為結點列表。其中每個結點都有指針成員變量指向列表中的下一個結點,head指針指向第一個結點稱為表頭,而終止于最后一個指向nuLL的指針2022-02-02使用Spring Cloud Feign作為HTTP客戶端調(diào)用遠程HTTP服務的方法(推薦)
在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調(diào)用本地方法一樣的編碼體驗,開發(fā)者完全感知不到這是遠程方法,更感知不到這是個HTTP請求,具體內(nèi)容詳情大家參考下本文2018-01-01springboot2.5.2與 flowable6.6.0整合流程引擎應用分析
這篇文章主要介紹了springboot2.5.2與 flowable6.6.0整合流程引擎應用分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07SpringBoot整合RocketMQ批量發(fā)送消息的實現(xiàn)代碼
這篇文章主要介紹了SpringBoot整合RocketMQ批量發(fā)送消息的實現(xiàn),文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-04-04ajax實時監(jiān)測與springboot的實例分析
本文將介紹如何使用 AJAX 技術結合 Spring Boot 構建一個實時反饋用戶輸入的應用,我們將創(chuàng)建一個簡單的輸入框,當用戶在輸入框中鍵入文本時,應用將異步地向后端發(fā)送請求,感興趣的朋友跟隨小編一起看看吧2024-07-07關于elasticsearch的match_phrase_prefix查詢詳解
這篇文章主要介紹了關于elasticsearch的match_phrase_prefix查詢問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03