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

Spring注入Map集合實現(xiàn)策略模式詳解

 更新時間:2023年11月23日 10:21:34   作者:chaojunma  
這篇文章主要介紹了Spring注入Map集合實現(xiàn)策略模式詳解,Spring提供通過@Resource注解將相同類型的對象注入到Map集合,并將對象的名字作為key,對象作為value封裝進入Map,需要的朋友可以參考下

Spring注入實現(xiàn)策略模式

Spring提供通過@Resource注解將相同類型的對象注入到Map集合,并將對象的名字作為key,對象作為value封裝進入Map,下面我們來具體實現(xiàn)一下:

首先我們定義一個抽象類

public abstract class TaskAbstractHandler {
 
    abstract public boolean handleJob(String message);
}

定義多個對象分別繼承上面的抽象類

@Slf4j
@Component("taskA")
public class TaskAHandler extends TaskAbstractHandler {
    @Override
    public boolean handleJob(String message) {
        // TODO 實現(xiàn)taskA具體的業(yè)務邏輯
    }
}
@Slf4j
@Component("taskB")
public class TaskBHandler extends TaskAbstractHandler {
    @Override
    public boolean handleJob(String message) {
        // TODO 實現(xiàn)taskB具體的業(yè)務邏輯
    }
}

注入Map對象

@Slf4j
@Component
public class ThirdMQListener implements MessageListener {
 
    @Resource
    private Map<String, TaskAbstractHandler> taskHandlerMap;
 
    @Override
    public Action consume(Message message, ConsumeContext consumeContext) {
 
        // 獲取消息體
        byte[] body = message.getBody();
        String messageBody = new String(body);
 
        JSONObject json = JSON.parseObject(messageBody);
        // 獲取任務編號
        String taskCode = json.getString("taskCode");
 
        // 根據(jù)tag獲取具體調(diào)用方
        TaskAbstractHandler taskHandler = taskHandlerMap.get(taskCode);
 
        if (taskHandler == null) {
            log.error("No object found according to the task code[{}]", taskCode);
            return Action.ReconsumeLater;
        }
 
        boolean isSuccess = taskHandler.handleJob(messageBody);
        if (isSuccess) {
            return Action.CommitMessage;
        } else {
            return Action.ReconsumeLater;
        }
    }
}

上面通過@Resource注解將TaskAbstractHandler類型的對象注入到Map集合中,再根據(jù)消息體中的任務編號從taskHandlerMap對象或獲取到具體的執(zhí)行任務對象,從而根據(jù)任務編號執(zhí)行不同的策略。

到此這篇關于Spring注入Map集合實現(xiàn)策略模式詳解的文章就介紹到這了,更多相關Spring注入實現(xiàn)策略模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java并發(fā)編程之Exchanger方法詳解

    Java并發(fā)編程之Exchanger方法詳解

    這篇文章主要介紹了Java并發(fā)編程之Exchanger方法詳解,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • SpringBoot中循環(huán)依賴問題的原理與解決方案

    SpringBoot中循環(huán)依賴問題的原理與解決方案

    在Spring Boot開發(fā)中,依賴注入(DI)是核心特性之一,本文將通過一個實際錯誤案例,深入分析Spring Boot循環(huán)依賴的成因、解決方案,并提供最佳實踐建議,希望對大家有所幫助
    2025-07-07
  • mybatis-plus分頁查詢?nèi)N方法小結(jié)

    mybatis-plus分頁查詢?nèi)N方法小結(jié)

    本文主要介紹了mybatis-plus分頁查詢?nèi)N方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Mybatis-Plus條件構(gòu)造器的具體使用方法

    Mybatis-Plus條件構(gòu)造器的具體使用方法

    這篇文章主要介紹了Mybatis-Plus條件構(gòu)造器的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • java語言實現(xiàn)權重隨機算法完整實例

    java語言實現(xiàn)權重隨機算法完整實例

    這篇文章主要介紹了java語言實現(xiàn)權重隨機算法完整實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • 一文詳解Spring攔截鏈的實現(xiàn)原理

    一文詳解Spring攔截鏈的實現(xiàn)原理

    在?Web應用開發(fā)中,攔截器(Interceptor)是一種非常重要的機制,能夠在請求處理的各個階段進行前置和后置處理,本文主要來探討一下?Spring?攔截鏈的實現(xiàn)原理,需要的可以了解下
    2025-01-01
  • 一文帶你了解SpringBoot中啟動參數(shù)的各種用法

    一文帶你了解SpringBoot中啟動參數(shù)的各種用法

    在使用 Spring Boot開發(fā)應用時,我們通常需要根據(jù)不同的環(huán)境或特定需求調(diào)整啟動參數(shù),那么,Spring Boot 提供了哪些方式來配置這些啟動參數(shù)呢,下面小編就來和大家介紹一下吧
    2025-03-03
  • 使用Java模擬鼠標和鍵盤的詳細操作步驟

    使用Java模擬鼠標和鍵盤的詳細操作步驟

    這篇文章主要介紹了使用Java模擬鼠標和鍵盤的詳細操作步驟,要運行上面提供的Java程序,您需要遵循幾個步驟來設置Java環(huán)境、編寫程序代碼,并執(zhí)行該程序,文中有相關的代碼示例,需要的朋友可以參考下
    2024-05-05
  • 詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設置)

    詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設置)

    這篇文章主要介紹了詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設置),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Struts2學習教程之攔截器機制與自定義攔截器

    Struts2學習教程之攔截器機制與自定義攔截器

    這篇文章主要給大家介紹了關于Struts2學習基礎教程之攔截器機制與自定義攔截器的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05

最新評論

竹山县| 靖江市| 宁津县| 睢宁县| 达日县| 垫江县| 伊宁市| 玉龙| 南召县| 临洮县| 东辽县| 烟台市| 罗田县| 龙州县| 和林格尔县| 南川市| 龙陵县| 永定县| 大连市| 平乡县| 扬中市| 江门市| 金湖县| 昌宁县| 安康市| 佛坪县| 五河县| 黑河市| 大荔县| 三原县| 瑞金市| 南阳市| 峨山| 平遥县| 阜阳市| 原阳县| 固安县| 琼中| 二连浩特市| 舟曲县| 无极县|