我的想法是通过spring statemachine跟踪域对象的状态。例如,statemachine定义了如何传输域对象的状态。当事件被持久化/从事件存储中恢复时,可以通过将事件发送到statemachine来生成域对象的状态(Re)。
但是,创建一个statemachine对象似乎比较昂贵,但是,每当域对象上发生状态转换时,创建状态机对象并不是很好的性能。如果我只维护一个statemachine对象,我就会担心并发问题。一种方法是拥有一个“statemachine池”,但是如果我必须为多个不同的域对象创建statamachine,则会变得很麻烦。
那么,应用带有事件源模式的spring st
我试图在我的项目中使用Spring,因为有一个对象是带有几个状态的Order
新的
已付
包装
送出
取消
退回来
该对象可以按以下方式实现
public class Order {
private String id;
private Customer customer;
private OrderState state;
// Some other fields with getter and setter
}
我介绍了OrderService,从DB获得订单,设置了一些信息,包括OrderState,然后保存到DB。
但是,我不知道如何将Spr
我只是在使用spring状态机@WithStateMachine时遇到了一个问题。
@WithStateMachine当我在由@EnableStateMachine注释的类中定义的内部类上使用它时就能工作,但是当我在其他地方定义类时,它似乎不起作用。这是我的代码:
@Configuration@EnableStateMachine public class StateMachineConfig extends EnumStateMachineConfigurerAdapter<States, Events> {
@Override
public void configure(Sta
我使用Spring状态机。我遵循了文档和其他内容。我需要为每个员工保留不同的状态机。但每次调用工厂获取状态机时,都会返回一个状态为initial的状态机。 public enum EmployeeEvent {
CREATED, CHECKSTARTED, APPROVE, ACTIVATED
}
public enum EmployeeState {
ADDED, INCHECK, APPROVED, ACTIVE
} 状态就是类似于上面的事件。配置如下 @Configuration
@EnableStateMachineFactory
public class Stat
我正在使用Spring Boot SM实现一个状态机。其中一个转换仅在Guard约束成功时发生:
.withExternal().source(ProjectStatus.STATE2).target(StatutProjet.STATE3).event(ProjectEvent.next).guard(quoteSelected());
当我发送事件时:
if (stateMachine.sendEvent(message)) {
// Event is accepted so I could return OK response
} else {
// Event is not