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

什么是责任链模式?

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

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

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

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

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

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

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

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

相关推荐
皮皮林55114 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河15 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程17 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅19 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者20 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺20 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart1 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP1 天前
MyBatis-mybatis入门与增删改查
java
孟陬1 天前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端