Java常见技术分享-11-责任链模式

什么是责任链模式?

责任链模式的应用场景 是 当一个请求需要经过 多个对象依次处理 或者 不确定 哪个对象 能处理该请求的时候。 他主要有两个核心的组件。

一个是抽象的处理者, 它定义了处理请求的接口, 并且持有下一个处理者的引用。 一个是具体的处理者, 他实现了处理请求的接口, 可以自己判断要不要把请求继续给下一个处理者处理。

责任链模式在SpringBoot中有什么实际的应用吗?

SpringBoot里的HandlerInterceptor接口 就相当于抽象处理者,

他定义了处理请求的 preHandle和postHandle 方法。 分别是请求真正到达controller之前, 和之后执行的。

而具体的处理者, 则是像我们自己写的登录拦截器和日志拦截器等。

比如登录拦截器, 如果识别到客户还没登录, 就直接return false,就不给下一个拦截器处理了。

这种处理模式, 特别适合 一堆校验规则, 如果转换成 责任链模式 那么就会很简洁。 每一个单独的校验都是独立的"责任",把责任传递下去。

相关推荐
YatHinLay38 分钟前
Spring Boot + Calcite 实现跨库查询
java
酷炫码神1 小时前
MosMos 创意效果与能力边界展示
java
Wang's Blog1 小时前
Java 接入Redis: 使用Jedis操作Redis
java·服务器·redis
事圆则缓1 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
shehuiyuelaiyuehao1 小时前
算法50,分治归并,数组中的逆序对
java·算法
烽学长1 小时前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端
Ivanqhz1 小时前
数据搬运是性能关键
java·服务器·网络·人工智能·深度学习
青山木2 小时前
RocketMQ 入门到原理(三):消息存储原理
java·后端·中间件·架构·rocketmq
MayBaymax2 小时前
Spring AI Alibaba Graph 实战:客服工单智能处理
java·ai·ai编程
光依旧2 小时前
MCP实战手记系列(五):让工具返回一个能点的界面(文末附github源码链接)
java·spring ai·前端集成·mcp·mcp apps