spring状态机可以支持多配置吗?

Can spring statemachine support multi configuration?

在我的项目中,我遇到了问题;我有很多场景需要支持多状态配置,比如需要定义create order status machine,还需要定义create item status;那么有人能告诉我如何使用 spring statemachine 吗?

我已经使用了 @EnableStateMachineFactory 并定义了

@Configuration @EnableStateMachineFactory @SuppressWarnings("all") public class OrderHoldConfiguration extends EnumStateMachineConfigurerAdapter<HoldState, HoldEvent> { ... }

@Configuration @EnableStateMachineFactory public class JsdConfiguration extends EnumStateMachineConfigurerAdapter<BizState, BizEvent> { ... }

但是它不起作用,我应该使用哪种方式?

看起来文档对此有点不清楚,但 @EnableStateMachine@EnableStateMachineFactory 的工作方式相同,生成的 bean 分别命名为 stateMachinestateMachineFactory。在你的情况下,其他工厂简单被覆盖。

@EnableStateMachineFactory(name = "factory1"){}
@EnableStateMachineFactory(name = "factory2"){}

然后您可以从 spring 应用程序上下文自动装配或获取 bean,就像按名称的任何其他 bean 一样。现有票证 gh-306 允许通过泛型自动装配,因此在该问题得到修复之前,您需要按名称进行装配(即使用 @Qualifier)。