0

在 Spring Statemachine 参考文档中是这个示例代码:

@WithStateMachine
static class Bean1 {

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

StateContext是否可以从带有注释的方法访问对象@OnTransition?也许我不明白注释的正确用法......我认为它可以以与 类似的方式使用Action,我可以访问存储在ExtendedState.

4

1 回答 1

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) {
  }

}

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

于 2015-11-20T13:56:51.517 回答