【问题标题】:Manual build of State machine手动构建状态机
【发布时间】:2017-12-22 11:11:28
【问题描述】:

我有一个使用 Spring 的状态机,这是使用注解构造的

@Configuration
@EnableStateMachine
class StateMachineConfiguration extends
    StateMachineConfigurerAdapter<State, Event> {

(对于状态/转换)

以及一些用于操作的处理程序类

@WithStateMachine
public class AwaitingData {

@OnStateEntry(target = "AwaitingData")
public void onEntry() {

我想手动构建这个状态机,以便测试各个方面。我不想为测试复制配置,我想使用“真实”配置。 我可以使用 StateMachineBuilder 和我的配置类轻松构建机器

private StateMachine<State, Event> buildStateMachine() {
    StateMachineConfiguration config = new StateMachineConfiguration();
    StateMachineBuilder.Builder<State, Event> builder = StateMachineBuilder.builder();
    config.configure(builder.configureStates());
    config.configure(builder.configureTransitions());
    return builder.build();
}

但是...我现在如何添加动作? 我想通过模拟等添加特定操作(取决于特定测试)。

在配置机器时,我已经逐步浏览了该库,但我仍然看不到添加注释函数的位置/方式。 Google 帮不上什么忙,通常会直接将我发送到似乎没有涵盖我的用例的 Spring 文档。

【问题讨论】:

    标签: java spring spring-statemachine


    【解决方案1】:

    我创建了gh462 来润色文档。

    本质上@WithStateMachine是一个spring应用上下文集成,你需要让机器知道BeanFactory。添加了手动构建器,以便人们可以在正常的 spring 应用程序上下文和 bean 模型之外使用机器。在我完善文档之前,请参阅 MethodAnnotationWithBuilderTests 如何做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2021-02-07
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多