spring-state-machine的action踩坑
发表于|更新于
|浏览量:
善则称人,过则称己,则民不争。——佚名
今天在状态机的action里进行事件触发,发现并没有触发
这是因为在action触发后,state才会进行更改,而不是在state触发后。。。
例如此处我们在action的execute打断点:

可以看到还没有更改状态
如果需要在state触发以后紧接着触发event,则可以放到拦截器里spring-state-machine拦截器处理
相关推荐
2020-09-23
Arrays.asList的坑
我认为对于一切情况,只有“热爱”才是最好的老师。——爱因斯坦 今天写代码遇到一个坑 本身不是什么难的逻辑,结果自己学艺不精忘了,导致程序出现不该出现的异常 是这样的,数据库里原有存了这么几张图片,使用的是“;”分割 现在要进行一个追加并去重的操作 1234567// 原有数据库里的图片String pic = "http://p16.qhimg.com/bdm/960_593_0/t0195d14f593431562a.jpg;" + "http://p18.qhimg.com/bdm/480_296_0/t014a0ca534d64adbba.jpg;" + "http://p18.qhimg.com/bdm/480_296_0/t014a0ca534d64adbba.jpg;" + "http://p18.qhimg.com/bdm/480_296_0/t014a0ca534d64adbba.jpg";// 需要追加的图片String appendPi...
2020-08-15
springboot实现Validator校验
一个优秀的后端,是不会相信任何传入的参数的 要做到这一点,以前我们是写大量的判断代码来验证数据的格式 在开发中,我们实际不这么干,我们使用Hibernate Validator来进行参数校验 它实现了JSR 303规范,使我们的代码的健壮性大大提高 先列出一些常用注解 约束注解 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max, min) 被注释的元素的大小必须在指定的范围内 @Digits (in...
2021-06-16
判断一个类是否另一个类的父类
任何教育都比不上灾难的教育。——英狄斯雷利 代码很简单 我们调用Class中isAssignableFrom函数来判断左边的类是否参数中这个类的超类(父类) 123456System.out.println(Collection.class.isAssignableFrom(List.class));System.out.println(Collection.class.isAssignableFrom(ArrayList.class));System.out.println(Collection.class.isAssignableFrom(Set.class));System.out.println(Collection.class.isAssignableFrom(HashSet.class));System.out.println(Collection.class.isAssignableFrom(Map.class));System.out.println(Collection.class.isAssignableFrom(HashMap.class)); 打印结...
2020-08-10
java巨大字符串截取
string转list,分段截取 比如传入rubenrubenruben和5,得到的list就是{"ruben","ruben","ruben"}这样的 1234567891011121314151617181920/** * @param initial 初始字符串 * @param interval 分段长度 * @return */ public static List<String> stringSplit(String initial, Integer interval) { List<String> result = new LinkedList<>(); StringBuilder tmp = new StringBuilder(initial); int length = tmp.length(); while (length > 0) { ...
2023-12-22
boolean自然排序顺序
聪明人警告我说,生命只是荷叶上的一颗露珠。——泰戈尔 代码如下: 12345678910111213import java.util.ArrayList;import java.util.Comparator;import java.util.List;class Scratch { public static void main(String[] args) { List<Boolean> list = new ArrayList<>(); list.add(true); list.add(false); list.sort(Comparator.naturalOrder()); System.out.println(list); }} 输出如下: 1[false, true] 因此java中自然排序,false是小于true的 这里可以用一般orm的boolean转换为int来方便记忆 false为0 true为1 因此...
2023-11-20
docker运行声网linux-server-sdk示例
人类的天性是容易忘记感激别人,所以,如果我们施一点点恩惠都希望别人感激的话,那一定会使我们大为头痛。——戴尔·卡耐基 首先是下载: 下载 - 云信令(原实时消息) - 文档中心 - 声网Agora Agora_RTM_SDK_for_Linux_Java_v1_5_1.zip其中有个samples/Agora-RTM-Tutorial-Java,我们将 libs/libagora_rtm_sdk.so libs/agora_rtm.jar 复制到samples/Agora-RTM-Tutorial-Java/lib下 然后在samples/Agora-RTM-Tutorial-Java下执行命令: 1mvn install:install-file -Dfile=lib/agora_rtm.jar -DgroupId=io.agora.rtm -DartifactId=agora-rtm-sdk -Dversion=1.0 -Dpackaging=jar 然后注意修改代码中的AppId和token 这里我的token采取服务端生成,因此我们还需要这一个jar 12345...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog