带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(3)

简介: 带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(3)

带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(2)

https://developer.aliyun.com/article/1339676?groupCode=taobaotech


实现原理

 

业务接口通过生成的Pipeline构造实现,Pipeline负责责任链的组装及调用链表的首个节点(head)。首个节点如果    处理完成有返回值,则直接返回;否则传递给下一个节点。如果处理到最后一个节点(tail)返回仍然为空,则直接返  回空。

image.png

 

 

 

以获取配置为例:

 

image.png

 

 

image.png用 户 实 现 :

image.pngConfigSource

image.png用户自定义的 获取配置的接口

image.pngHandler实现:

image.pngMapConfigSourceHandler 、 SystemConfigSourceHandler

image.pngAutoPipeline生成

image.pngConfigSourcePipeline

image.png含义:责任链管道

image.png核心作用:将ConfigSourceHandler 串联成链表

image.pngConfigSourceHandlerContext

image.png含义:Handler的上下文,相比传统责任链,新增了获取全局Pipeline的能力

image.pngAbstractConfigSourceHandlerContext

image.png含义:Handler的上下文的抽象类

image.png数据结构:主要由三个部分组成:pre、next、handler

image.png核心作用:通过handler().get(key , findNextCtx()) 实现了 String get(String key) 方法

image.pngDefaultConfigSourceHandlerContext

image.png持有ConfigSourceHandler对象的默认实现类

 

 

带你读《2022技术人的百宝黑皮书》——一个搞定责任链的注解(4)https://developer.aliyun.com/article/1339674?groupCode=taobaotech

相关文章
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
289 0
|
缓存 NoSQL Java
Java工具篇之Guava-cache内存缓存
常在业务系统中做开发,不会点高级知识点,有点不好意思了。在业务系统中,提高系统响应速度,提供系统高并发能力,其实方向很简单,三个方向,六个字而已: **缓存降级限流。** 当然这是在排除代码质量非常差的情况,如果代码质量很差,都是while循环和高内存占用,那么其实再怎么做都于事无补。除非你有一个马云爸爸,性能不够,机器来凑嘛。阿里云前来支持(1000台机器够了吗?)
1574 0
|
6月前
|
设计模式 算法 前端开发
【设计模式】【行为型模式】职责链模式(Chain of Responsibility)
一、入门 什么是职责链模式? 职责链模式是一种行为设计模式,它允许你将请求沿着一条链传递,直到有对象处理它为止。每个对象都有机会处理请求,或者将其传递给链中的下一个对象。 为什么需要职责链模式? 使用
257 16
|
8月前
|
设计模式 XML 算法
策略模式(Strategy Pattern)深度解析教程
策略模式属于行为型设计模式,通过定义算法族并将其封装为独立的策略类,使得算法可以动态切换且与使用它的客户端解耦。该模式通过组合替代继承,符合开闭原则(对扩展开放,对修改关闭)。
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的程序设计实践项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的程序设计实践项目管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
200 1
|
缓存 Java Spring
Guava缓存工具类封装和使用
Guava缓存工具类封装和使用
394 0
|
监控 安全 Java
常见 Java 代码缺陷及规避方式(中)
常见 Java 代码缺陷及规避方式(中)
270 1
|
Java API Spring
常见 Java 代码缺陷及规避方式(上)
常见 Java 代码缺陷及规避方式(上)
379 0
|
存储 设计模式 算法
如何在业务代码中优雅地使用责任链模式
如何在业务代码中优雅地使用责任链模式
378 1
|
人工智能 Java 大数据
【HTML5+Springboot】农产品质量溯源大数据管理系统源码
【HTML5+Springboot】农产品质量溯源大数据管理系统源码
1130 0