spring - 带有 JPA 示例代码和配置的 Spring Statemachine
问题描述
我正在尝试使用像 MySQL 这样的 RDBMS 来持久化 spring 状态机。即我需要存储和检索由弹簧状态机控制的我的实体的状态。我似乎找不到合适的文档或任何具有完整配置的示例代码。我能找到的只是示例代码片段,它没有显示我需要做的所有事情才能坚持下去。有没有人有任何示例代码显示如何在 RDBMS 上配置 spring 状态机?
谢谢
解决方案
你看过坚持食谱吗?它可能有用。
我无法分享我的代码,但这是您可能需要的
1- 依赖
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.statemachine:spring-statemachine-autoconfigure")
implementation("org.springframework.statemachine:spring-statemachine-data-jpa")
implementation("org.springframework.statemachine:spring-statemachine-starter")
2- 代码
2.1 机器配置(我使用的是硬编码工厂策略)
@Configuration
@EnableStateMachineFactory(contextEvents = false)
@RequiredArgsConstructor
public class StateMachineConfig
extends EnumStateMachineConfigurerAdapter<S,E >
2.2 持久化配置
@Configuration
public class StateMachinePersistenceConfiguration {
@Bean
public StateMachineRuntimePersister<S, E, String> stateMachineRuntimePersister(
final JpaStateMachineRepository jpaStateMachineRepository) {
return new JpaPersistingStateMachineInterceptor<>(jpaStateMachineRepository);
}
}
2.3 服务配置(允许您检索机器)
@RequiredArgsConstructor
@Configuration
public class StateMachineServiceConfig {
private final StateMachineFactory<S, E> stateMachineFactory;
private final StateMachineRuntimePersister<S, E, String> stateMachineRuntimePersister;
@Bean
public StateMachineService<S, E> stateMachineService() {
return new DefaultStateMachineService<>(stateMachineFactory, stateMachineRuntimePersister);
}
}
框架应该创建一个状态机表来允许你持久化状态机
推荐阅读
- java - 在比较器内进行投射的好习惯吗?
- flutter - Flutter_map 平移边界取决于缩放级别
- node.js - 将信息存储到节点js中的txt文件
- android - 为什么我的 GridLayout 的某些按钮有距离并且它们没有显示在活动中
- javascript - 如何使用突击队框架在 discord.js 禁止和踢命令中添加原因?
- php - 我的注册 PHP 表单是否存在安全问题?
- android - 从另一个 Activity 返回到 DialogFragment 会重用我的输入动画
- laravel - 如何在 Laravel 8 中编写 Route::resource?
- c# - Microsoft.ReportViewer.Common 在做什么,为什么它不尊重我的 AssemblyResolver?
- c++ - char* 返回垃圾值