我想使用StateMachineFactory
包括几种用于动态实例化的StateMachine
配置。但是@EnableStateMachineFactory
注释允许命名工厂。每个配置如何命名(即扩展EnumStateMachineConfigurerAdapter
)?
否则,如果可能的话,有一个如何在配置定义中使用setMachineID
方法的示例将是有用的。
在带有spring`@configuration'类的这些enable
注释中只是定义了在应用程序上下文中注册的bean名称。最容易解释的例子:
@EnableStateMachine
StateMachine
作为bean stateMachine
。
@EnableStateMachine(name = "fooMachine")
StateMachine
作为bean fooMachine
。
@EnableStateMachine(name = {StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, "fooMachine"})
StateMachine
作为bean stateMachine
with bean别名 fooMachine
。
@EnableStateMachineFactory
StateMachineFactory
作为bean stateMachineFactory
。
@EnableStateMachineFactory(name = "fooMachineFactory")
StateMachineFactory
作为bean fooMachineFactory
。
@EnableStateMachineFactory(name = {StateMachineSystemConstants.DEFAULT_ID_STATEMACHINEFACTORY, "fooMachineFactory"})
StateMachineFactory
作为bean stateMachineFactory
with bean别名 fooMachineFactory
。
除此之外,@Configuration
类的名称(扩展了statemachineconfigureradapter)并不重要。在春季思想,@Configuration
类也被创建为bean,这意味着下面的类别将在春季应用程序上下文中以bean myConfig.MachineFactoryConfig
的形式存在。在春季,只有一件事要记住,因为命名不好的班级可能会导致bean覆盖!
public class MyConfig {
@Configuration
@EnableStateMachineFactory
public static class MachineFactoryConfig extends StateMachineConfigurerAdapter<String, String> {
}
}
machineId
将出现的内容,我刚刚在DOCS State Machine ID中添加了一个新部分。(仅在快照构建中,直到我们下次发布)