Spring 状态机 JPA 持久性

Spring State machine JPA persistence

我是 Spring 状态机的新手 我有下面给出的状态配置 我需要在 mysql 中使用 JPA 来保持状态更改。任何适当的例子对我也很有帮助。提前致谢

@Configuration
@EnableStateMachine(name = "machine1")
public class Config extends StateMachineConfigurerAdapter<String, String>{

@Override
public void configure(StateMachineConfigurationConfigurer<String, String> config) throws Exception {
    config.withConfiguration().autoStartup(true).listener(listener());
}

@Override
public void configure(StateMachineStateConfigurer<String, String> states) throws Exception {
    states
        .withStates()
            .initial("S1")
            .state("S1")
            .state("S2",null,action1())
            .state("S3");
}

@Override
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
    transitions
        .withExternal()
            .source("S1")
            .target("S2")
            .event("E1")
            .and().withExternal()
            .source("S2")
            .target("S3")
            .event("E2");
}   

}

jpa-config 只是一个将机器配置(状态、转换等)保存在数据库中的示例。如果您使用其他方式(javadsl 或 uml)进行配置,则不需要它。添加此支持是因为有些人希望有一种无需再次编译源代码即可修改机器配置的方法。我目前正致力于通过相同类型的 spring 数据存储库抽象为持久化机器添加更好的支持,这应该会在 1.2.8 中实现。

其他一些示例是如何手动完成操作的一些示例。目前这个过程确实是非常手工化的,层次低,比较繁琐。如果您不着急,我建议您使用 1.2.x 分支中的 1.2.8 快照。即有新示例 datajpapersist 显示运行时更清洁的模型持久化机器。