激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Springboot實現根據條件切換注入不同實現類的示例代碼

Springboot實現根據條件切換注入不同實現類的示例代碼

2020-08-24 00:29李昊軒的博客 Java教程

這篇文章主要介紹了Springboot實現根據條件切換注入不同實現類的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近有個一需求需要根據外界環境的屬性(操作系統 || yml屬性 || 其他bean的狀態) 來實現啟動時注入兩套不同的實現類, 實現切換.

實現啟動時條件注入分2步:

第一步 使用@Conditional(參數為 True false條件實現類 需要你自己實現)注解

?
1
2
3
4
5
6
7
8
9
10
11
12
@Conditional(RabbitMqCondition.class)
public class RabbitmqSMSMsgServiceImpl extends RabbitmqBasicMsgService {
 
//  @Autowired(required = false)
//  DefaultMQProducer producer;
 
  @Override
  public void sendToYourTaskQueue_Step2(PnsMessage pnsMessage) {
    // TODO rabbitmq 實現SMS消息推送
  }
 
}

第二步 實現自定義的條件類接口Condition 實現matches方法:

我這里判斷的是spring配置文件里的屬性, 其實可以判斷非常廣泛的東西, 并不只限于屬性.

?
1
2
3
4
5
6
public class RabbitMqCondition implements Condition {
  @Override
  public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
    return "rabbitmq".equals(conditionContext.getEnvironment().getProperty("mq.type"));
  }
}

application.yml 可以切換屬性

?
1
2
mq:
 type: rabbitmq

如果要是有多個符合條件的bean 利用@Service(value=“區別開來”)

到此這篇關于Springboot實現根據條件切換注入不同實現類的示例代碼的文章就介紹到這了,更多相關Springboot 根據條件切換注入不同實現類內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_33709508/article/details/108128932

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品伊人久久久久网站 | 成人福利在线看 | 精品久久久久久久久亚洲 | 中文字幕在线观看91 | 黄色影院网站 | 国产成人精品免费视频大全最热 | 91亚洲精品一区二区福利 | 羞羞网站 | 国产精品亚洲一区二区三区久久 | 黄色va视频| av在线免费看网站 | 国产一级在线看 | 亚洲精品午夜视频 | 欧美日本一 | 91久久国产露脸精品国产护士 | 毛片一级片 | 亚洲情视频 | 国产一级做a爰片在线看 | 欧美视频首页 | 亚洲成人精品在线 | 操操操操操 | 国产91九色视频 | 久久艹精品 | 久久成人免费观看 | 日本免费大片免费视频 | 国产99视频精品免视看9 | 亚洲精品免费播放 | 草逼一区 | 97黄色网 | 啊~用cao嗯力cao烂我视频 | 国产精品wwww | 玩偶姐姐 在线观看 | 欧美国产成人在线 | 欧美黄色大片免费观看 | 天天色综合6 | 国产一级伦理片 | 久久国产精品久久久久 | 日本在线不卡一区二区三区 | 免费一级a毛片免费观看 | 亚洲午夜免费 | 中文字幕专区高清在线观看 |