spring-state-machine守卫踩坑

2023-11-10 10:27:06 浏览数 (2)

真正的艺术家绝不顾虑作品的前途。——罗曼·罗兰

今天发现一个问题,如果我们是动态构建状态机,在传入指定守卫为null时,代码不会报错,且事件不会过渡到下一个状态

解决方式:

代码语言:javascript复制
builder.configureTransitions().withExternal()
       .name(transition.getName())
       .source(transition.getSourceState())
       .event(transition.getEvent())
       .target(transition.getTargetState())
       .action(Opp.of(transition.getAction()).orElse(SerCons.nothing()::accept))
       .guard(Opp.of(transition.getGuard()).orElseGet(() -> c -> true))

提供默认值

引入的是import org.dromara.streamquery.stream.core.lambda.function.SerCons;

0 人点赞