手动构建状态机

问题描述 投票:2回答:1

我有一个使用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个回答
1
投票

我创建了gh462来修饰文档。

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

© www.soinside.com 2019 - 2024. All rights reserved.