spring-state-machine守卫踩坑
发表于|更新于
|浏览量:
真正的艺术家绝不顾虑作品的前途。——罗曼·罗兰
今天发现一个问题,如果我们是动态构建状态机,在传入指定守卫为null时,代码不会报错,且事件不会过渡到下一个状态
解决方式:
1 | builder.configureTransitions().withExternal() |
提供默认值
引入的是import org.dromara.streamquery.stream.core.lambda.function.SerCons;
相关推荐
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...
2022-03-02
image-comparison
人活在世,不过一场美丽的寄居。——简嫃曾 我们可以使用image-comparison来在java中进行两个文件的对比: 项目地址:https://github.com/romankh3/image-comparison 它会自动生成对比后带红框的对比图,还能返回这些正方形的信息 首先引入GAV: 12345<dependency> <groupId>com.github.romankh3</groupId> <artifactId>image-comparison</artifactId> <version>4.4.0</version></dependency> 使用: 123456789//load images to be compared: BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png"); ...
2021-10-30
花里胡哨的peeks
莫见乎隐,莫显乎微,故君子慎其独也。一一《礼记》 今天又给hutool提交了PR,将前两天写的动态函数式参数用了起来 https://gitee.com/dromara/hutool/pulls/445 [新特性]你啊,总能给我整出点新花样 【以前使用peek】 1Opt.ofNullable("hutool").peek(user::setUsername).peek(user::setNickname); 【现在使用peeks】 1Opt.ofNullable("hutool").peeks(user::setUsername, user::setNickname); 什么?没看出有什么区别?都差不多???Na Na Na!接着往下看:首先是它使用java动态参数(可变参数)的特性,你可以传入0个或n个你想要的操作,例如: 【以前使用peek】 12345678if (condition) { // 满足条件,我就要把username设置为Opt中的值 hutool.peek(user::setUserna...
2023-11-27
spring-state-machine拦截器
不乘人于利,不迫人于险。——刘向 继续分享spring-state-machine状态机的拦截器使用,这里需要留意一个细节: 如果一个事件没有被状态机接受(例如当前状态不是事件的source导致无法转换) 则不会进入拦截器进行处理(但监听器仍然工作,监听器的博客) 这里配置拦截器也很简单: 1234567891011machine.addStateMachineInterceptor(new StateMachineInterceptorAdapter<TestStates,TestEvents>() { @Override public void postStateChange(State<TestStates, TestEvents> state, Message<TestEvents> message, Transition<TestStates, TestEvents> transition, StateMachine<TestStates, TestEvents> stateMac...
2022-02-17
启动时获取端口号
人类文化的悲哀,是流俗的易传、高雅的失传。——木心 我们可以如下写法在boot项目启动时获取端口号 12345678910111213141516171819202122232425package com.ruben.simplescaffold;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.core.env.Environment;/** * 主启动类 * * @author <achao1441470436@gmail.com> * @since 2021/5/18 0018 14:52 */@Slf4j@SpringBoot...
2024-03-04
r2dbc配置枚举转换器
你如果愿意做哲学家,尽管做好了,但是你在你的全部哲学思维中,仍然要做一个人。——休谟 首先配置Converter 12345678910111213141516171819202122232425import jakarta.annotation.Nullable;import org.springframework.core.convert.converter.Converter;import org.springframework.data.convert.WritingConverter;import org.springframework.stereotype.Component;/** * EnumToIntConverter * * @author achao@apache.org */@Component@WritingConverterpublic class AgoraNotifyTypeEnumToIntConverter implements Converter<AgoraNotifyTypeEnum, Integer> { ...

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