gpt4 book ai didi

spring-statemachine - Spring 状态机 - 将静态数据附加到状态

转载 作者:行者123 更新时间:2023-12-02 20:05:00 34 4
gpt4 key购买 nike

使用 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)

我不知道是否可以采取某种方式。

最佳答案

这是通过状态机中的两个对象来实现的 - StateContextExtendedState .

StateContext就像状态机的当前快照 - 它在各种方法和回调中传递,包括操作和防护。

ExtendedState基本上是一个带有变量的 map 。

您可以从StateContext获取ExtendedState:

    context.getExtendedState()
.getVariables().put("mykey", "myvalue");

由于它作为上下文的一部分传递,因此您可以在每个操作、转换、防护等中访问扩展状态。StateMachine对象本身也有一个 getExtendedState() 方法。

这是在 StateMachine 中传递静态数据的规范方法。

关于spring-statemachine - Spring 状态机 - 将静态数据附加到状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54992727/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com