设计模式-责任链模式之**动态配置责任链**

news2024/11/15 11:45:26

正在参加2022年度博客之星评选,大家帮我点个五星好评。有投必会

责任链的优势劣势我就不说,百度上很多。

1、怎么:动态配置责任链

通过配置文件yml来指定你的责任链的执行顺序。
地址
在这里插入图片描述
配置文件如何配置,怎么读取

为什么:动态配置责任链

为了方便配置这个链条的执行顺序,任意剔除其中某一链条。才采取的种方式。(好处)

责任链模式逻辑处理优化

一个for搞定

上代码 优化写法在这里插入图片描述

老思想逻辑处理写法

在这里插入图片描述

老写法

缺点:违背设计原则:对扩展开放,对修改关闭
在这里插入图片描述

  • 每增加一个链条,都要去重写一下对象使用调度
    gitee类:PackCheck

类图

在这里插入图片描述
Component:类加入Spring容器中,交给他来管理
AbstractCheck: 抽象出来一个校验的类。具体的实现交给子类执行;
在这里插入图片描述

NullCheck 空值校验
DaysCheck.java:天数校验
CheckConfig:配置类 指定 链条 执行顺序
PackCheck:封装链条

注意 :在责任链的这个链条中,参数必须是同一对象。层层传递下一引用可以封装。

场景:流程审批、过滤器、层层校验

源码地址

代码执行结果

在这里插入图片描述

  • http://localhost:8080/check/get
    在这里插入图片描述
  • http://localhost:8080/check/for
    在这里插入图片描述
  • http://localhost:8080/check/old
    在这里插入图片描述

视频讲解

抖音版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP协议详解 - 通过C++实现HTTP服务剖析HTTP协议

前言 C/C程序员一般很少会接触到HTTP服务端的东西,所以对HTTP的理解一般停留在理论。 本文章实现通过C实现了一个http服务,可以通过代码对HTTP协议有更深的理解,并且通过抓包工具对HTTP协议进行更为详细的分析。 HTTP协议简介 HTTP(hypert…

Linux--多线程

目录1. 什么是线程2. 创建线程3. 线程等待3.1 pthread_join函数3.2 线程分离3.2 线程终止的方案4. 线程ID1. 什么是线程 Linux中没有专门为线程设计TCB,而是用进程的PCB来模拟进程。 这也是为什么有种观点会说Linux下没有真正意义上的线程。 对于线程来说&#xf…

Elasticsearch搜索引擎(二)——SpringData Elasticsearch

SpringData Elasticsearch SpringData介绍 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。 Spring Data可以极大的简化JPA的写法,可以在…

CSND近期推出的猿如意到底怎么样?

CSND近期推出的猿如意到底怎么样? 投稿测评正文 猿如意传送门 猿如意下载地址:猿如意-程序员的如意兵器,工具代码,一搜就有 猿如意使用了几次了,今天来想分享一下我对于猿如意的使用感受吧!! 先说结论&#xff1a…

吴恩达《机器学习》——Logistics回归代码实现

Logisitc回归1. Sigmoid与二分类Sigmoid函数为什么Sigmoid函数可以表示二分类概率?2. Logistics回归交叉熵损失函数梯度过拟合与欠拟合正则化3. Python代码实现4. 单维与多维Logistic分类单维数据分类多维数据分类数据集、源文件可以在Github项目中获得 链接: https…

04 kafka 中一些常用的配置的使用

前言 呵呵 也是最近有一些 搭建 kafka 的环境的需求 然后 从新看了一下 一部分的配置情况, 这里 大致理一下 一些我这里比较关心的配置 那些配置关联了 kafka 服务器绑定服务 绑定 tcp 服务的配置来自于这里, 读取的是 config.dataPlaneListeners config.dataPlaneListen…

Java母婴商城母婴店孕妇商城婴幼儿商城网站系统源码

简介 java使用ssm开发的母婴商城系统,用户可以注册浏览商品,加入购物车或者直接下单购买,在个人中心管理收货地址和订单,管理员也就是商家登录后台可以发布商品,上下架商品,处理待发货订单等。 演示视频&…

Allegro如何在PCB上查看pin number的三种方法操作指导

Allegro如何在PCB上查看pin number的三种方法操作指导 Allegro支持快捷的在PCB上查看pin number,如下图 具体操作如下 方法一:show element 选择Show Element命令Find选择Pins

2022年学习机器人和人工智能的一些期待

2022年学习机器人和人工智能的一些体会 2023年即将到来,满满的期待。 做好规划是非常非常重要的,有时候甚至比认真做事本身更为重要。 《礼记中庸》:“凡事豫则立,不豫则废。言前定则不跲,事前定则不困,行…

视频解码学习备忘

媒体文件知识 日常都是播放器直接播,其实这里面还有不少内容的。 首先是视频容器,就是所谓的.mp4 .mkv 这类文件,其目的主要就是用来存放音频视频字幕等内容,所以叫做容器。这些都有一定规范,比如mp4,叫ISO 14496-12…

流程图+BPMN+脑图 JointJS++ 3.6.3 Crack

一个库,‍ 无限的UI选择,直接在您的应用程序中享受交互式流程图、BPMN 和其他图表工作室。利用我们的模板化应用程序,将开发时间缩短至几天。 经过十多年和数百万行代码的编写,我们推出了一组随时可用的功能,以帮助您创…

数据结构进阶 二叉树OJ题二

作者:小萌新 专栏:数据结构进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍几道二叉树的oj题 题目一 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表…

帆软—图表专题

饼图 优点:能很直观的看到每一个部分在整体中所占的比例。 缺点:不适合较大的数据集(分类)展现,数据项中不能有负值,当比例接近时,人眼很难准确判别。 变形饼图 柱形图 特点 优点&#xff…

SpringBoot HandlerMethodArgumentResolver接口自定义参数解析器

参考资料 【SpringBoot】HandlerMethodArgumentResolver的简单使用HandlerMethodArgumentResolver(参数解析器)的作用使用小案例HandlerMethodArgumentResolver用于统一获取当前登录用户 目录一. 需求二. 前期准备三. 实现HandlerMethodArgumentResolver接口四. 将自定义的方法…

一套javassf门户网站管理系统源码分享

淘源码:国内专业的免费源码下载平台 JAVA SSF项目框架源码 后台管理系统源码 一套以SpringMVCSpringHibernateFreemarkerShiroLuceneHtml5jQuery为技术核心架构的门户网站管理系统源码。 源码免费分享,需要源码学习可私信我。 主要功能: 内…

笑对过往、活在当下、期盼未来

哈喽大家好,我是阿Q。 去年今日,也是安静的午后,拿起铅笔在纸上寥寥草草的写下几个年终关键词,思索良久,迟迟未能下笔。 时至今日,年末将至,再次执笔已时隔一年,再不拿笔记录这转瞬…

Python制作粒子烟花,程序员的跨年姿势

跨年倒计时还有半天?我已经开始整烟花了,虽然不是很好看吧,但是也能将就看看 😥 这个的背景图,音乐,还有文字都是可以自己修改的哦 效果展示 依次导入本次需要使用到的模块 import random import pygame…

免费的JPEG 恢复软件 - 照片删除了怎么恢复?

照片删除了怎么恢复? 照片在我们的生活中起着至关重要的作用,因为它们可以承载我们的快乐回忆,记录我们的日常生活,分享我们的快乐等。我们将在智能手机、相机或计算机上拍摄并存储大量 JPEG 图片。但是,无论我们多么小心地保留它…

Python和MySQL对比(2):用Pandas 实现MySQL的 union 和 join 语法效果

文章目录一、前言二、语法对比数据表unionjoin1、两表 inner join2、两表 left join3、两表 right join4、两表 outer join5、多表 join三、小结一、前言 环境: windows11 64位 Python3.9 MySQL8 pandas1.4.2 本文主要介绍 MySQL 中的union和join如何使用pandas实现…

Spring 核心概念 IOC/DI IOC容器 Bean

目录 一:代码书写现状 二:核心思想 一:代码书写现状 常规操作如上,但存在着问题,将项目上线后,需要将数据层进行更换,更换如下: 数据层更换后,业务层也需要进行更换,更换如下: 数据…