Spring Statemachine reference doc这是示例代码:
@WithStateMachine
static class Bean1 {
@OnTransition(source = "S1", target = "S2")
public void fromS1ToS2() {
}
}
是否可以访问 StateContext
来自用@OnTransition
注释的方法的对象?也许我不明白注释的正确用法...我认为它可以以类似于 Action
的方式使用,我可以在其中访问存储在 ExtendedState
中的数据.
最佳答案
我似乎完全忘记在我们的文档中添加这些特定信息。我们无法访问 StateContext
,但 事件 header
和 ExtendedState
可用。
MethodAnnotationTests中有一个单元测试。 .
简单来说,处理器处理方法调用会检测参数类型 ExtendedState
和 Map
(如果其使用 @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/