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()); |
相关推荐
2021-07-22
创建只读集合
真正的人生,只有在经过艰难卓绝的斗争之后才能实现。——塞涅卡 在java8中 我们可以使用下面的函数创建只读集合 12345678Collections.unmodifiableCollection(Arrays.asList(""));Collections.unmodifiableList(Collections.singletonList(""));Collections.unmodifiableMap(new HashMap<>(1 << 4));Collections.unmodifiableSet(new HashSet<>());Collections.unmodifiableNavigableMap(new TreeMap<>());Collections.unmodifiableNavigableSet(new TreeSet<>());Collections.unmodifiableSortedMap(new TreeMap<>());Colle...
2021-01-24
quartz
天下熙熙,皆为利来;天下攘攘,皆为利往。——《史记》 Quartz Job Scheduling Library是什么?Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作。任务定义为标准Java组件的作业,它们实际上可以执行您可以对其执行的任何编程操作。Quartz Scheduler包含许多企业级功能,例如对JTA事务和集群的支持。 Quartz是免费使用的,并根据Apache 2.0许可获得许可。 简单来说,就是一调度框架,用来干动态定时任务的 quartz官方文档 quartzAPI文档 在springboot中使用quartz 导入依赖 12345<!-- quartz --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-qu...
2021-03-04
springboot文件大小限制
繁枝容易纷纷落,嫩蕊商量细细开。——唐•杜甫 springboot文件大小限制 首先是可以在配置文件中进行配置 1234567spring: servlet: multipart: # 单个文件 max-file-size: 1GB # 一次请求 max-request-size: 1GB 还有,我们也可以在代码中进行配置 123456789@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); // 单个数据大小 factory.setMaxFileSize(DataSize.of(1, DataUnit.GIGABYTES)); // 总上传数据大小 factory.setMaxRequestSize(DataSize.of(1, DataUnit.GIGABYTES)); return...
2021-03-17
sentinel监控不到2级接口?加上@SentinelResource就可以?
真正的快乐是内在的,它只有在人类的心灵里才能发现。——布雷默 如果出现这种问题啊 可以看你的项目启动日志 发现输出如下一句话 2021-03-16 23:24:49.986 INFO 18604 — [ main] c.a.c.s.SentinelWebAutoConfiguration : [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/*]. 看到这句话差不多懂了吧? Sentinel提供的SentinelWebInterceptor的urlPatterns默认为/* 我们跟踪配置文件com.alibaba.cloud.sentinel.SentinelProperties 找到这个配置 12345spring: cloud: sentinel: filter: url-patterns: /** 我们设置为/**后,所有接口都会被监控到啦~
2023-09-30
feign-reactive
晚饭少吃口,活到九十九。——钱大昕 https://github.com/openfeign/feign 目前feign不支持webflux、reactive 于是找到了一个三方库 https://github.com/kptfh/feign-reactive 基于Spring WebFlux的Reactive Feign客户端 安装: 12345678910111213141516171819202122232425262728293031323334<repositories> <repository> <id>bintray-kptfh-feign-reactive</id> <name>bintray</name> <url>https://dl.bintray.com/kptfh/feign-reactive</url> </repository></repositories>...<d...
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 因此...
