使用Spring StateMachine框架实现状态机
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package com.didispace;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.statemachine.annotation.*;
|
||||
|
||||
/**
|
||||
* 该配置实现了com.didispace.StateMachineConfig类中定义的状态机监听器实现。
|
||||
*/
|
||||
@WithStateMachine
|
||||
public class EventConfig {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@OnTransition(target = "UNPAID")
|
||||
public void create() {
|
||||
logger.info("订单创建,待支付");
|
||||
}
|
||||
|
||||
@OnTransition(source = "UNPAID", target = "WAITING_FOR_RECEIVE")
|
||||
public void pay() {
|
||||
logger.info("用户完成支付,待收货");
|
||||
}
|
||||
|
||||
@OnTransitionStart(source = "UNPAID", target = "WAITING_FOR_RECEIVE")
|
||||
public void payStart() {
|
||||
logger.info("用户完成支付,待收货: start");
|
||||
}
|
||||
|
||||
@OnTransitionEnd(source = "UNPAID", target = "WAITING_FOR_RECEIVE")
|
||||
public void payEnd() {
|
||||
logger.info("用户完成支付,待收货: end");
|
||||
}
|
||||
|
||||
@OnTransition(source = "WAITING_FOR_RECEIVE", target = "DONE")
|
||||
public void receive() {
|
||||
logger.info("用户已收货,订单完成");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user