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 分别命名为 stateMachine
和 stateMachineFactory
。在你的情况下,其他工厂简单被覆盖。
@EnableStateMachineFactory(name = "factory1"){}
@EnableStateMachineFactory(name = "factory2"){}
然后您可以从 spring 应用程序上下文自动装配或获取 bean,就像按名称的任何其他 bean 一样。现有票证 gh-306 允许通过泛型自动装配,因此在该问题得到修复之前,您需要按名称进行装配(即使用 @Qualifier
)。
在我的项目中,我遇到了问题;我有很多场景需要支持多状态配置,比如需要定义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 分别命名为 stateMachine
和 stateMachineFactory
。在你的情况下,其他工厂简单被覆盖。
@EnableStateMachineFactory(name = "factory1"){}
@EnableStateMachineFactory(name = "factory2"){}
然后您可以从 spring 应用程序上下文自动装配或获取 bean,就像按名称的任何其他 bean 一样。现有票证 gh-306 允许通过泛型自动装配,因此在该问题得到修复之前,您需要按名称进行装配(即使用 @Qualifier
)。