Spring State Machine Transition灵活使用

151 阅读1分钟

前言

定义状态机状态转换流程,利用AOP按需灵活控制执行状态转换的动作。

举例:定义公交路线 a->b->c->...->x->y->z,可配置一条快速公交路线(跳过一些站),a->c->e->...->x->z

思路

  • 构造状态机

  • AOP控制action执行

实现

  • 构造状态机

    Configuration
    @EnableStateMachine
    public class StateMachineConfig extends EnumStateMachineConfigurerAdapter<States, Events> {
    
        @Override
        public void configure(StateMachineTransitionConfigurer<States, Events> transitions)
                throws Exception {
           // 可从配置文件中读取transitions
           
        }
    }
    
    
  • AOP控制action执行

    • 实现Spring State Machine Action 接口,并注入到Spring容器,并放在同一包下
    • AspjectJ 切点入口为Action下execute()
    • AspjectJ 环绕通知处理控制Action是否执行

结尾

如果文章对你有帮助,请点 赞👍🏻 支持一下。若有错误之处或有更好的建议,欢迎指正,谢谢。