动态配置 spring 状态机
Dynamically configuring spring state machine
关于 spring 状态机的一些查询。
我们能否在一个 spring 项目中拥有多个状态机,
其中一个状态机服务于一个工作流程(可能是一张 CD
播放器工作流程)和另一个旋转栅门?
我能否在我的配置 class 中动态加载配置,例如从具有 JSON 格式数据的大数据源,我们存储我们的状态、事件、转换等等
我的一个要求是我可能有一个经常变化的工作流程或模型,我需要在我的 spring 项目中配置它。如何使用 spring 状态机有效地做到这一点。
1) 你可以有多台机器。 @EnableStateMachine
有 id
属性 作为 bean 名称。您可以将配置公开为 @EnableStateMachineFactory
。如果您想在 javaconfig 之外工作,可以使用手动构建器模型。
2/3)javaconfig和statemachine之间有一个public配置api。此配置模型的一个用户(在 javaconfig 之外)是基于 uml 的建模,它使用 eclipse's uml xml 文件来加载配置。 Uml 是您最好的选择,因为目前我们没有其他内置配置挂钩。欢迎投稿 ;)
您可以使用 Builder 动态配置状态机。 Builder 在后台使用与 @Configuration 模型使用适配器 类 相同的配置接口。
示例:
StateMachine<String, String> buildMachine1() throws Exception {
Builder<String, String> builder = StateMachineBuilder.builder();
builder.configureStates()
.withStates()
.initial("S1")
.end("SF")
.states(new HashSet<String>(Arrays.asList("S1","S2","S3","S4")));
return builder.build();
}
Link转官方文档:Dynamic Spring State Machine
关于 spring 状态机的一些查询。
我们能否在一个 spring 项目中拥有多个状态机, 其中一个状态机服务于一个工作流程(可能是一张 CD 播放器工作流程)和另一个旋转栅门?
我能否在我的配置 class 中动态加载配置,例如从具有 JSON 格式数据的大数据源,我们存储我们的状态、事件、转换等等
我的一个要求是我可能有一个经常变化的工作流程或模型,我需要在我的 spring 项目中配置它。如何使用 spring 状态机有效地做到这一点。
1) 你可以有多台机器。 @EnableStateMachine
有 id
属性 作为 bean 名称。您可以将配置公开为 @EnableStateMachineFactory
。如果您想在 javaconfig 之外工作,可以使用手动构建器模型。
2/3)javaconfig和statemachine之间有一个public配置api。此配置模型的一个用户(在 javaconfig 之外)是基于 uml 的建模,它使用 eclipse's uml xml 文件来加载配置。 Uml 是您最好的选择,因为目前我们没有其他内置配置挂钩。欢迎投稿 ;)
您可以使用 Builder 动态配置状态机。 Builder 在后台使用与 @Configuration 模型使用适配器 类 相同的配置接口。 示例:
StateMachine<String, String> buildMachine1() throws Exception {
Builder<String, String> builder = StateMachineBuilder.builder();
builder.configureStates()
.withStates()
.initial("S1")
.end("SF")
.states(new HashSet<String>(Arrays.asList("S1","S2","S3","S4")));
return builder.build();
}
Link转官方文档:Dynamic Spring State Machine