1

在我的项目中,我遇到了问题;我有很多场景需要支持多状态配置,比如需要定义创建订单状态机,还需要定义创建商品状态;那么有人可以告诉我如何使用弹簧状态机吗?

我已经使用@EnableStateMachineFactory并定义了

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

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

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

4

1 回答 1

4

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

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

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

于 2017-01-22T16:44:49.813 回答