責任鏈模式-java

1、spring依賴注入模式

@Configuration
public class ChainConfig {@Beanpublic ChainSpringFactory chainSpringFactory(List<IHandler<DemoOne,Boolean>> handlerList){return new ChainSpringFactory(handlerList);}}

public class DemoOne {
}

public abstract class IHandler<T,R> {public IHandler<T,R> nextHandler;public void setNextHandler(IHandler<T,R> nextHandler) {this.nextHandler = nextHandler;}public boolean hasNext() {return this.nextHandler != null;}/*** 處理責任鏈邏輯, 執行下個環節*/public R handle(T t){if(hasNext()){return nextHandler.handle(t);}return  null;};}
public class ChainSpringFactory <T,R> {private IHandler<T,R> first;/*** 存放系統中責任鏈具體處理類* @param handlerList*/public  ChainSpringFactory(List<IHandler<T,R>> handlerList) {Assert.notEmpty(handlerList,"無責任實現bean");for (int i = 0; i < handlerList.size()-1; i++) {handlerList.get(i).setNextHandler(handlerList.get(i+1));}first=handlerList.get(0);}/*** 執行具體業務場景中的責任鏈集合*/public R executeHandle(T productDto) {return first.handle(productDto);}
}

</

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73496.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習本地部署DeepSeek的過程(基于LM Studio)

除了使用Ollama部署DeepSeek&#xff0c;還可以使用LM Studio部署DeepSeek&#xff0c;后者是一款允許用戶在本地計算機上運行大型語言模型&#xff08;LLMs&#xff09;的桌面應用程序&#xff0c;旨在簡化本地模型的使用&#xff0c;無需云端連接或復雜配置即可體驗 AI 功能。…

CSS 尺寸 (Dimension)

CSS 尺寸 (Dimension) 在網頁設計中&#xff0c;CSS&#xff08;層疊樣式表&#xff09;的尺寸屬性是控制元素大小和位置的關鍵。本文將詳細介紹CSS尺寸相關的概念、屬性及其應用。 1. CSS 尺寸概述 CSS尺寸主要包括寬度和高度&#xff0c;這些屬性可以應用于各種HTML元素&a…

【自學筆記】ELK基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 ELK基礎知識點總覽1. ELK簡介2. Elasticsearch基礎Elasticsearch配置示例&#xff08;elasticsearch.yml&#xff09; 3. Logstash基礎Logstash配置示例&#xff08…

等差數列公式推導

前言&#xff1a; 通過實踐而發現真理&#xff0c;又通過實踐而證實真理和發展真理。從感性認識而能動地發展到理性認識&#xff0c;又從理性認識而能動地指導革命實踐&#xff0c;改造主觀世界和客觀世界。實踐、認識、再實踐、再認識&#xff0c;這種形式&#xff0c;循環往…

【MySQL】用戶賬戶、角色、口令、PAM

目錄 查看用戶賬戶設置 連接 1.本地連接 2.遠程連接 賬戶 角色 操作用戶賬戶和角色 配置口令和賬戶有效期限 手工使口令過期 配置口令有效期限 PAM身份驗證插件 客戶端連接&#xff1a;使用 PAM 賬戶登錄 在連接到MySQL服務器并執行查詢時&#xff0c;會驗證你的身…

5種生成模型(VAE、GAN、AR、Flow 和 Diffusion)的對比梳理 + 易懂講解 + 代碼實現

目錄 1 變分自編碼器&#xff08;VAE&#xff09;? 1.1 概念 1.2 訓練損失 1.3 VAE 的實現 2 生成對抗網絡&#xff08;GAN&#xff09;? 2.1 概念 2.2 訓練損失 a. 判別器的損失函數 b. 生成器的損失函數 c. 對抗訓練的動態過程 2.3 GAN 的實現 3 自回歸模型&am…

印刷電路板 (PCB) 的影響何時重要?在模擬環境中導航

我和我的同事們經常被問到關于 PCB 效應的相同問題&#xff0c;例如&#xff1a; 仿真何時需要 PCB 效果&#xff1f; 為什么時域仿真需要 PCB 效應&#xff1f; 當 PCB 效應必須包含在仿真中時&#xff0c;頻率是否重要&#xff1f; 設計人員應該在多大程度上關注 VRM 模型中包…

2024跨境電商挑戰:AI反檢測技術在避免封號中的作用

2024跨境電商挑戰&#xff1a;AI反檢測技術在避免封號中的作用 跨境電商的浪潮席卷全球&#xff0c;為商家打開了通往世界各地的大門。然而&#xff0c;隨著平臺監管的加強&#xff0c;合規性問題成為商家不得不面對的挑戰。在電商平臺的嚴格監控下&#xff0c;任何違規行為都…

QML控件 - Text

在 QML 中&#xff0c;Text 組件是用于顯示文本的核心元素&#xff0c;支持豐富的文本樣式、布局和交互功能。以下是 完整指南 和常見用法示例&#xff1a; 1. 基礎用法 import QtQuick 2.15Text {text: "Hello, QML!" // 顯示文本內容font.pixelSize: 20 // 字體…

網絡運維學習筆記(DeepSeek優化版) 024 HCIP-Datacom OSPF域內路由計算

文章目錄 OSPF域內路由計算&#xff1a;單區域的路由計算一、OSPF單區域路由計算原理二、1類LSA詳解2.1 1類LSA的作用與結構2.2 1類LSA的四種鏈路類型 三、OSPF路由表生成驗證3.1 查看LSDB3.2 查看OSPF路由表3.3 查看全局路由表 四、2類LSA詳解4.1 2類LSA的作用與生成條件4.2 2…

HTML5 SVG:圖形繪制的現代標準

HTML5 SVG:圖形繪制的現代標準 引言 隨著互聯網技術的發展,網頁的交互性和美觀性日益受到重視。HTML5 SVG作為一種強大的圖形繪制技術,在網頁設計中發揮著重要作用。本文將深入探討HTML5 SVG的原理、應用場景以及如何在實際項目中運用。 一、HTML5 SVG簡介 1.1 什么是SV…

多智能體融合(Multi-Agent Fusion)

多智能體融合&#xff08;Multi-Agent Fusion&#xff09;是指在多智能體系統&#xff08;MAS, Multi-Agent System&#xff09;中&#xff0c;多個智能體&#xff08;Agent&#xff09;通過協作、競爭或共享信息&#xff0c;實現全局最優的智能決策和任務執行。該方法廣泛應用…

[學習筆記]NC工具安裝及使用

工具簡介 Netcat&#xff08;簡稱 nc&#xff09;是一款強大的命令行網絡工具&#xff0c;被稱作瑞士軍刀&#xff0c;用來在兩臺機器之間建立 TCP/UDP 連接&#xff0c;并通過標準的輸入輸出進行數據的讀寫&#xff0c;大家也可以使用Nmap&#xff08;增強版nc工具&#xff0…

SvelteKit 最新中文文檔教程(11)—— 部署 Netlify 和 Vercel

前言 Svelte&#xff0c;一個語法簡潔、入門容易&#xff0c;面向未來的前端框架。 從 Svelte 誕生之初&#xff0c;就備受開發者的喜愛&#xff0c;根據統計&#xff0c;從 2019 年到 2024 年&#xff0c;連續 6 年一直是開發者最感興趣的前端框架 No.1&#xff1a; Svelte …

計算機等級4級數據庫工程師(筆記1)

數據依賴&#xff08;2&#xff09;&#xff1a;多值依賴 進程&#xff08;4&#xff09;&#xff1a;PCB 內存管理&#xff08;3&#xff09; 文件管理&#xff08;3&#xff09; 關系模型中數據的物理結構是一張二維表&#xff08;錯&#xff09; 在用戶看來&#xff0c;…

pod 不允許改哪些字段?

在 Kubernetes 中&#xff0c;Pod 是一種不可變的資源對象。這意味著一旦 Pod 被創建&#xff0c;其中的一些字段是無法修改的。如果你需要對這些不可變字段進行更改&#xff0c;通常的做法是刪除舊的 Pod 并創建一個新的 Pod。 以下是一些在 Pod 中不可修改的關鍵字段&#x…

量子計算的黎明:從理論到現實的突破之旅

在科技發展的浩瀚星空中&#xff0c;量子計算如同一顆璀璨的新星&#xff0c;正逐漸照亮人類探索未知領域的道路。從最初的理論構想&#xff0c;到如今實驗室中的初步實現&#xff0c;量子計算正經歷著一場從夢想到現實的華麗蛻變。這場變革不僅挑戰了我們對計算本質的理解&…

【Unity】 HTFramework框架(六十三)SerializableDictionary可序列化字典

更新日期&#xff1a;2025年3月26日。 Github 倉庫&#xff1a;https://github.com/SaiTingHu/HTFramework Gitee 倉庫&#xff1a;https://gitee.com/SaiTingHu/HTFramework 索引 一、SerializableDictionary可序列化字典1.使用SerializableDictionary2.實現思路 二、Serializ…

二叉樹練習

102. 二叉樹的層序遍歷 - 力扣&#xff08;LeetCode&#xff09; 使用隊列進行層序遍歷。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.v…

深入了解 Git Merge:用法、類型與合并沖突處理

文章目錄 深入了解 Git Merge&#xff1a;用法、類型與合并沖突處理一、Git Merge 是什么&#xff1f;二、Git Merge 的工作流程四、Git Merge 的類型1. Fast-forward Merge&#xff08;快進合并&#xff09;2. Three-way Merge&#xff08;三方合并&#xff09; 四、Git Merge…