java - 在@OnTransition注解的方法中获取StateContext

标签 java spring spring-statemachine

Spring Statemachine reference doc这是示例代码:

@WithStateMachine
static class Bean1 {

    @OnTransition(source = "S1", target = "S2")
    public void fromS1ToS2() {
    }
}

是否可以访问 StateContext来自用@OnTransition注释的方法的对象?也许我不明白注释的正确用法...我认为它可以以类似于 Action 的方式使用,我可以在其中访问存储在 ExtendedState 中的数据.

最佳答案

我似乎完全忘记在我们的文档中添加这些特定信息。我们无法访问 StateContext,但 事件 header ExtendedState 可用。

MethodAnnotationTests中有一个单元测试。 .

简单来说,处理器处理方法调用会检测参数类型 ExtendedStateMap(如果其使用 @EventHeaders 进行注释)。我也一直在考虑通过方法参数以相同的方式支持 StateContext,但还没有做到这一点。

@WithStateMachine
public class Bean2 {

  @OnTransition(source = "S1", target = "S2")
  public void method1(@EventHeaders Map<String, Object> headers, ExtendedState extendedState) {
  }

}

我也会为此整理文档,感谢您指出这一点!

关于java - 在@OnTransition注解的方法中获取StateContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815561/

相关文章:

java - Spring AMQP——@RabbitListener 是在幕后轮询吗?

java - 创建文件 [...] : Instantiation of bean failed (NullPointerException) 中定义的名称为 'db' 的 bean 时出错

spring - Fork 和 Join 在 spring 状态机中(并行执行)

spring-statemachine - 以编程方式构建状态机

java - 错误 : Calendar cannot be resolved in JSP

java - 奇数舍入逻辑

java - 如何根据java构造函数中的参数进行响应

java - 如何处理实例化类对象时出现的异常

java - Spring项目出现异常

java - 如何将 Spring 状态机用于 Order 对象