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-12-25
SimpleQuery优化
做老实人,说老实话,干老实事,就是实事求是。——邓小平 今天又给Mybatis-Plus贡献了代码 https://gitee.com/baomidou/mybatis-plus/pulls/198 优化SimpleQuery,处理了值为空的情况: 之前的情况: 假设数据库中表数据: id name 1 ruben 2 null 我们构建一个Enitity(向miemie大佬致敬) 123456789101112131415161718package com.baomidou.mybatisplus.test.rewrite;import lombok.Data;import java.io.Serializable;/** * @author miemie * @since 2020-06-23 */@Datapublic class Entity implements Serializable { private static final long serialVersionUID = 6962439201546719734L; ...
2021-12-26
mybatis-plus允许自定义handlerType的set
与有肝胆人共事,从无字句处读书。——周恩来 今天看mybatis-plus源码发现了UpdateWrapper中的set竟然有一两个重载没有在官方文档写到: 一看官方示例,发现它可以临时自定义typeHandler,也就是类型处理器,以及属性所在的java类型和数据库中字段的数据类型(jdbcType) 例如官方示例传入的: 我们也可以像方法注释那样传入javaType和jdbcType 12345// wrapper typeHandler 测试 LambdaUpdateWrapper<User> wrapper = Wrappers.<User>lambdaUpdate().set(User::getWallets, Arrays.asList(new Wallet("Tom", Arrays.asList(new Currency("RMB", 1000d)))), "javaType=java.util.List,jdbcType=VARCHAR,type...
2023-12-23
nacos坏了临时排除掉依赖
冬天动一动,少闹一场病;冬天懒一懒,多喝药一碗。——佚名 可以配置文件配置 123spring: autoconfigure: exclude: org.springframework.cloud.alibaba.nacos.* 也可以手动注解声明 12345678910NacosConfigAutoConfiguration: Nacos配置管理的自动配置。NacosDiscoveryAutoConfiguration: Nacos服务发现的自动配置。NacosServiceAutoConfiguration: Nacos服务相关的自动配置。NacosConfigEndpointAutoConfiguration: Nacos配置端点的自动配置。NacosDiscoveryEndpointAutoConfiguration: Nacos服务发现端点的自动配置。NacosServiceRegistryAutoConfiguration: Nacos服务注册的自动配置。NacosDiscoveryClientConfiguration: Nacos发现客户端的配置。N...
2021-01-23
DTO、TO、VO、PO、DO、BO、AO、DAO、POJO
人的一生,应当像这美丽的花,自己无所求,而却给人间以美。——杨沫 之前一直有朋友问我Java中DTO、TO、VO、PO、DO、BO、AO、DAO、POJO这么多O到底是什么意思,看博客看不懂,有没有实际的例子 当然,这些O是出自《阿里Java开发手册》 POJO(Plain Ordinary Java Object): 在本规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。 AO(Application Object): 阿里巴巴专指 Application Object,即在 Service 层上,极为贴近 业务的复用代码。 我就说说我的理解吧,顺带写点例子 这里就写个根据用户名、分页参数查询用户列表的例子吧 DTO(Data Transfer Object)数据传输对象 首先我们接口接参可以使用DTO,简单来说就是Controller中函数的参数,例如下面的PageDTO 12345678910111213141516171819@Data...
2023-12-31
批量分页
再也无需前思后想,一切岂非已然过往。——《且听风吟》 今天分享一个装一个分批分页,传入页码、分页条数,然后查询分页条数+1条数据,这里的+1是为了判断还有下一页数据,然后查询到后,再按照传入的lambda条件筛选,筛选完后的数据添加进集合,添加到集合后如果满足当前分页所需条数,就返回数据 这里需要做一个容错,当时间超过后直接返回,避免传入的lambda predicate一直为false导致死循环 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import lombok.experimental.UtilityClass;import org.dromara.streamquery.stream.core.stream.Steam;import java.util.ArrayList;import java.util.List;...
2024-04-11
mybatis-plus启动时自动执行sql脚本
不劳动,无所得。——富兰克林 源码地址: mybatis-plus-samples/mybatis-plus-sample-ddl-mysql/src/main/java/com/baomidou/mybatisplus/samples/ddl/mysql/MysqlDdl.java at master · baomidou/mybatis-plus-samples · GitHub 代码如下: 1234567891011121314151617181920212223242526272829package com.baomidou.mybatisplus.samples.ddl.mysql;import com.baomidou.mybatisplus.extension.ddl.SimpleDdl;import org.springframework.stereotype.Component;import java.util.Arrays;import ...
