spring-state-machine拦截器

简介: spring-state-machine拦截器

继续分享spring-state-machine状态机的拦截器使用,这里需要留意一个细节:

如果一个事件没有被状态机接受(例如当前状态不是事件的source导致无法转换)

则不会进入拦截器进行处理(但监听器仍然工作,监听器的博客

这里配置拦截器也很简单:

machine.addStateMachineInterceptor(new StateMachineInterceptorAdapter<TestStates,TestEvents>() {
      @Override
      public void postStateChange(State<TestStates, TestEvents> state, Message<TestEvents> message,
          Transition<TestStates, TestEvents> transition, StateMachine<TestStates, TestEvents> stateMachine,
          StateMachine<TestStates, TestEvents> rootStateMachine) {
        if (state.getId() == TestStates.S4) {
          nullCheck.set(transition == null);
        }
        super.postStateChange(state, message, transition, stateMachine, rootStateMachine);
      }
    })

或者

stateMachine.getStateMachineAccessor().withRegion()
                    .addStateMachineInterceptor(new StateMachineInterceptor());

同样,这里有非常多的方法在不同的时机执行:

postStateChange
postTransition
preEvent
preStateChange
preTransition
stateMachineError

拦截器主要的特征是可以修改状态机、事件的行为,例如在 preEvent 方法中返回 null,则事件不会执行

相关文章
|
2月前
|
前端开发 JavaScript Java
Spring Boot中使用拦截器
本节主要介绍了 Spring Boot 中拦截器的使用,从拦截器的创建、配置,到拦截器对静态资源的影响,都做了详细的分析。Spring Boot 2.0 之后拦截器的配置支持两种方式,可以根据实际情况选择不同的配置方式。最后结合实际中的使用,举了两个常用的场景,希望读者能够认真消化,掌握拦截器的使用。
|
3月前
|
监控 前端开发 Java
Spring Boot中的拦截器配置
Spring Boot中的拦截器配置
|
4月前
|
监控 前端开发 Java
Spring Boot中的拦截器配置
Spring Boot中的拦截器配置
|
5月前
|
前端开发 Java 程序员
Spring Boot统一功能处理(拦截器, 统一数据返回格式, 统一异常处理)
Spring Boot统一功能处理(拦截器, 统一数据返回格式, 统一异常处理)
71 1
|
4月前
|
前端开发 JavaScript Java
【Spring Boot】 深入理解Spring Boot拦截器:自定义设计与实现全攻略
【Spring Boot】 深入理解Spring Boot拦截器:自定义设计与实现全攻略
67 0
|
5月前
|
前端开发 Java Spring
[AIGC] Spring Interceptor 拦截器详解
[AIGC] Spring Interceptor 拦截器详解
|
5月前
|
前端开发 Java 数据安全/隐私保护
Spring Boot使用拦截器:概念与实战
【4月更文挑战第29天】拦截器(Interceptors)在Spring Boot应用中常用于在请求处理的前后执行特定的代码,如日志记录、认证校验、权限控制等。本篇博客将详细介绍Spring Boot中拦截器的概念及其实战应用,帮助开发者理解和利用拦截器来增强应用的功能。
86 0
|
5月前
|
缓存 前端开发 Java
【Spring底层原理高级进阶】轻松掌握 Spring MVC 的拦截器机制:深入理解 HandlerInterceptor 接口和其实现类的用法
【Spring底层原理高级进阶】轻松掌握 Spring MVC 的拦截器机制:深入理解 HandlerInterceptor 接口和其实现类的用法
|
5月前
|
Java Spring
spring的两种拦截器HandlerInterceptor和MethodInterceptor
spring的两种拦截器HandlerInterceptor和MethodInterceptor
102 0
|
5月前
|
前端开发 Java 应用服务中间件
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
下一篇
无影云桌面