gpt4 book ai didi

java - 手动构建状态机

转载 作者:行者123 更新时间:2023-11-30 10:21:18 25 4
gpt4 key购买 nike

我有一个使用 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();
}

但是...我现在如何添加 Action ?我想用模拟等添加特定的 Action (取决于特定的测试)。

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

最佳答案

我创建了 gh462润色文档。

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

关于java - 手动构建状态机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940545/

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