state-machine持久化踩坑
发表于|更新于
|浏览量:
植物借栽培而生育,人类借教育而成人。——罗素
今天使用spring-state-machine踩坑了,这里配了持久化,然后在事件里更改了额外数据
1 | gameInfo = stateMachine.getExtendedState().get(WordChainConst.GAME_INFO, GameInfo.class); |
结果在interceptor或者guard等其他地方使用的时候,却获取不到正确的值
原来在修改值后,还需要持久化保存一下。。。
1 | public class RedisSmPersister extends AbstractStateMachinePersister<StateEnum, EventEnum, String> |
1 | redisSmPersister.persist(sm, sm.getId()); |
相关推荐
2023-10-07
sa-token实现网关调用认证服务统一鉴权
多言则背道,多欲则伤生。——林逋 按照文档里集成时发现一个问题: https://sa-token.cc/doc.html#/micro/gateway-auth 其中在web-flux的网关处调用认证子服务进行鉴权,按照文档里进行配置后 checkPermission函数会调用StpInterface,然后我实现的StpInterface是同步的,本来用open-feign实现后,发现open-feign不支持webflux!虽然有个三方库 feign-reactive 可以支持,但考虑了下,还是采用webclient实现 但由于webclient此处不能阻塞调用,所以就手动实现SaReactorFilter完成封装 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495...
2022-01-24
TTL的CRR操作
要有最朴素的梦想,即使明天天寒地冻,路远马亡。——海子 前段时间遇到的TTL(TransmittableThreadLocal)在异步编程中的上下文丢失问题,我是采用了直接更换线程池的方式 但今天抽空看了下官方文档,发现了: 所有TTL值的抓取、回放和恢复方法(即CRR操作) CRR:capture(快照)、replay(回放)、restore(备份) 自己简单写了个测试用例,用于在CompletableFuture和并行流场景下解决ThreadLocal的上下文丢失问题 大伙一定要复制到本地跑一下,需要的GAV是这个: 12345<dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.12.4</version></dependency> 代码: 12345678910111213141516171819...
2020-10-11
SQLite入门のjava创建库表
人们因为能忘却,所以自己能渐渐的脱离了受过的苦痛,也因为能忘却,所以照样得再犯前人的错误。——鲁迅 关于SQLite SQLite是一个C语言库,它实现了一个小型、快速、自包含、高可靠性、全功能的SQL数据库引擎。SQLite是世界上使用最多的数据库引擎。SQLite内置于所有的移动电话和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。 首先引入依赖 1234567<!-- sqlite驱动 --><!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc --><dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.32.3.2</version></dependency> 然后java代码 123456789101112131415...
2021-04-03
mybatis-plus逻辑删除简单实现
1 人生不是一支短短的烛炬,而是一只由我们暂时拿着的火把;我们一要把它燃得十分光明辉煌,然后交给下一代的人们。——(英)萧伯纳 mybatis-plus配置逻辑删除 我们可以在配置文件中配置 12345mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) 然后在pojo的删除字段属性加一个@TableLogic注解 然后我们启动测试类 12345@Testpublic void deleteTest() { List<Film> films = filmMapper.selectList(Wrappers.lambdaQuery(Film.builder().build()).last("LIMIT 1")); films.stream().findFirst().map(Film::getFilmId)...
2021-12-09
Collectors.mapping
胜人者有力,自胜者强。——先秦《老子》 今天发现了Collectors.mapping的正确姿势 使用场景如下: 我想要对一个List<User>进行groupBy 1234567891011121314151617181920212223242526272829class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Inte...
2022-06-30
2.7版本spring.factories弃用
手我是有的,就是不知如何碰你。——顾城 之前我写过一个编写一个spring-boot-starter-fastjson 今天看了一下,新版本的spring2.7,已经弃用了spring.factories 最新版的写法为: 也就是说: 里面配置放包名即可

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