在@OnTransition注释方法中获取StateContext

时间:2015-11-19 22:30:28

标签: java spring spring-statemachine

在Spring中Statemachine reference doc是这个示例代码:

@WithStateMachine
static class Bean1 {

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

是否可以从使用StateContext注释的方法访问@OnTransition对象?也许我不理解正确使用注释...我认为它可以像Action一样使用,我可以访问存储在ExtendedState中的数据。

1 个答案:

答案 0 :(得分:1)

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

MethodAnnotationTests中有一个单元测试。

简短的故事是处理器处理方法调用检测到参数类型ExtendedStateMap,如果它用@EventHeaders注释的话。我也一直在考虑通过方法参数以相同的方式支持StateContext,但还没有那么远。

@WithStateMachine
public class Bean2 {

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

}

我也会为此解析文件,thx指出这个!