Spring 状态机访问 eventNotAccepted 侦听器中的 StateContext

Spring State Machine Access to StateContext in eventNotAccepted Listener

我是 Spring 状态机的新手。我为我的状态机使用了 StateMachineListener。我如何在 eventNotAccepted 方法中访问 StateContext

@Override
        public void eventNotAccepted(Message<String> event) {

        }

您需要使用 StateMachineListener.stateContext(StateContext<S, E>) 并监听所有 StateContext 变化。从那里检查 StateContext.getStage() 匹配 Stage.EVENT_NOT_ACCEPTED.

最初添加侦听器接口时我们没有上下文,后来当人们想要访问它时我们不想破坏向后兼容性,因此添加了新方法。