使用 Spring 状态机,我们有状态和事件。我找不到任何关于是否可以在配置期间将静态数据附加到状态的文档。
例如,如果有状态 S1 和 S2
public void configure(StateMachineStateConfigurer<String, String> states) throws Exception {
states.withStates()
.initial("INIT")
.end("END")
.state("S1", null, exitAction())
.state("S2", entryAction());
}
如果我们可以在上述配置期间附加静态数据(例如 java Map),那么它在触发的操作中可能会很有用(如上面的entryAction和exitAction)
我不知道是否可以采取某种方式。
这是通过状态机中的两个对象来实现的 -状态上下文 and 扩展状态.
状态上下文就像状态机的当前快照 - 它在各种方法和回调中传递,包括操作和防护。
扩展状态基本上是一个带有变量的地图。
您可以获得ExtendedState
来自StateContext
:
context.getExtendedState()
.getVariables().put("mykey", "myvalue");
当它作为上下文的一部分传递时,您可以访问ExtendedState
在每一个动作、转换、防守等中。
这状态机对象本身也有一个getExtendedState()
method.
这是在 StateMachine 中传递静态数据的规范方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)