- 博客(51)
- 问答 (1)
- 收藏
- 关注
原创 Cola状态机
本文介绍了如何使用阿里巴巴的COLA框架实现一个订单状态机的示例。首先,通过引入cola-component-statemachine依赖,定义了订单状态和事件的枚举类。接着,创建了订单上下文对象OrderContext,用于传递订单ID和操作人信息。然后,通过StateMachineConfig类构建了状态机配置,定义了从“待接单”到“已接单”、“已接单”到“已完成”以及任意状态到“已取消”的状态转换逻辑。最后,在Main类中调用状态机进行测试,输出了订单状态转换的结果。该示例展示了事件驱动、状态流转和上
2025-05-21 10:54:54
244
原创 Excel导入日期变数字,数据库入库异常的排查与修复过程
📌 这次问题让我彻底搞清楚了 Excel 日期存储的底层原理,也顺便优化了数据库设计。日期类型字段,数据库中统一用date或datetime类型,避免后期字符串难以统一格式或做日期运算导入 Excel 时,一定要判断单元格类型,尤其是且的情况问题记录就是成长!👊 希望这篇 bug 修复记录能帮到有同样困扰的朋友们。
2025-05-15 11:01:47
402
原创 FastJSON 使用 `Feature.OrderedField` 修复 `JSONObject` 序列化字段顺序问题
场景推荐方案JSONObject字段顺序敏感FastJSON 使用解析 JSON 字符串时,字段顺序错乱是因为HashMap的无序性。通过指定,可以轻松保持字段原始顺序,特别适用于签名生成、日志记录等顺序敏感场景。✅ 建议在项目中根据需求,选择性使用此特性,同时注意嵌套对象、性能开销和版本差异。
2025-05-06 17:19:00
921
原创 SpringBoot+Redis全局唯一ID生成器
优势说明全局唯一Redis INCR 原子性保障并发安全多线程/多服务节点同时操作也无冲突起始值高位避免与已有数据库自增ID冲突配置化yml配置,随时灵活调整易扩展支持多业务线ID(如性能高Redis内存操作,单次耗时微秒级。
2025-04-30 14:48:53
350
原创 GitHub 克隆/下载失败的解决方案
在国内使用 Git 操作 GitHub 时,经常会遇到以下问题:❌ 下载失败、超时❌❌本文将详细讲解如何通过来解决问题,并提供,一站式解决你的困扰!
2025-04-09 09:46:02
1080
1
原创 Java Map 的 `computeIfAbsent` 和 `getOrDefault` 方法详解
在 Java 开发中,Map接口提供了许多实用的方法来简化代码,提高效率。和,并通过示例说明它们的使用场景和功能。
2025-03-21 13:18:58
341
原创 @RequiredArgsConstructor注解使用
如果使用注解,那么 Spring 通过构造函数注入时会自动注入,你不需要显式使用@Autowired注解。@Autowired是 Spring 用于注入依赖的注解,通常用于字段或构造函数上,如果你使用构造函数注入,@Autowired并不一定需要显式标注,Spring 会自动进行注入。如果你的没有被正确注入,确保 Spring 容器中存在的实现,并且MyService类被标记为@Component或其他 Spring 注解,使其被 Spring 扫描并管理。
2025-03-13 16:53:51
534
原创 【MySQL 中 `TINYINT` 类型与布尔值的关系】
TINYINT是一个占用 1 字节的整数类型,取值范围为:有符号:-128 到 127无符号:0 到 255BOOLEAN类型在 MySQL 中实际是TINYINT(1)的别名,即使用TINYINT来表示布尔值。在 MySQL 中,BOOLEAN和BOOL是TINYINT(1)的别名。使用TINYINT(1)来存储布尔值时,0表示false1表示true。你可以将这个内容作为文档发布,帮助更好地理解 MySQL 中TINYINT与布尔值之间的关系。
2025-03-13 16:46:57
353
原创 面试题总结
● 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,会幻读 比如第一次查询 没有数据 同时另一个事务提交了数据 再次查询有数据 就幻读。● 在索引列上进行了范围查询 > < 右边的列是不走索引的 但是前面的列是走索引的。● 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。● 模块查询以%开头会导致失效 在结尾可以走索引。● 脏读: 一个事务读取到了另外一个还没有提交的事务。解决并发事务问题的办法就是事务隔离。
2025-02-14 11:54:17
285
原创 接口严格做幂等操作 推荐使用分布式锁
确实,这意味着在编码时需要额外的考虑和实现,但长远来看,这是构建健壮系统的重要一步。对于那些应当具备幂等性的操作,如保存、更新、审批等操作,确保代码中实现幂等性检查是一个最佳实践。更新时,SQL语句中包含版本号的条件,如果数据已被其他事务修改(版本号不匹配),则更新失败。:通过消息队列处理业务逻辑,确保消息至少被消费一次,同时在消费者端实现幂等性逻辑,比如记录已处理消息ID,重复消息到来时忽略处理。:确保一系列操作在同一个事务中执行,如果其中任何一部分失败,则整个事务回滚,保证数据的一致性。
2024-07-02 10:24:00
321
原创 SpringBoot+FTP下载文件,单文件直接下载,多文件进行打包zip下载
【代码】SpringBoot+FTP下载文件,单文件直接下载,多文件进行打包zip下载。
2024-04-19 15:06:48
720
原创 查询数据库连接数量-数据库线程池调优
设置连接超时时间:根据连接的平均使用时长和连接数的波动情况,设置适当的连接超时时间。如果连接池中的连接较多,可以将连接超时时间设置得稍短一些,以便及时释放不再使用的连接。数据库线程池是用来管理数据库连接的,控制并发访问的数量,以避免资源耗尽和性能下降。调整最小空闲连接数:根据连接数的波动情况,调整最小空闲连接数的值。配置连接池监控和日志:添加连接池监控和日志功能,以便实时监测连接池的使用情况和性能指标,并及时发现潜在的问题。分析连接数波动情况:观察连接数的波动趋势和峰值,了解系统在不同负载下的连接需求。
2024-01-16 11:01:03
683
原创 排查GC频率 jstat gcutil命令
您可以观察不同区域(S0、S1、E、O、M、CCS)的垃圾回收百分比(以小数形式表示),以及年轻代垃圾回收次数(YGC)、年轻代垃圾回收所占用的时间(YGCT)、全局垃圾回收次数(FGC)、全局垃圾回收所占用的时间(FGCT)和总的垃圾回收时间(GCT)。使用jstat gcutil命令可以查看垃圾回收的统计信息,包括垃圾回收次数和垃圾回收所占用的时间百分比。参数pid是JVM进程的ID,interval是采样间隔的时间(以毫秒为单位),count是采样次数。
2024-01-16 10:52:02
823
原创 CPU飙升 频繁GC排查-使用jmap histro命令来查看JVM中对象的直方图
jmap是Java Virtual Machine Tool的一部分,它允许您生成JVM堆转储文件并执行各种诊断操作。可以使用jmap histro命令来查看JVM中对象的直方图。执行上述命令后,您将获得JVM堆中的对象直方图。此直方图显示每个类的实例数量和总占用空间。例如:在这里插入图片描述。参数pid是JVM进程的ID。请注意,您需要具有足够的权限才能执行此命令。
2024-01-16 10:45:12
762
原创 MySQL 的事务隔离级别是可重复读(Repeatable Read)
在同一事务中进行多次查询时,会返回第一次查询时的快照,而不是实时的最新值。为了解决这个问题,您可以将事务隔离级别设置为读已提交(Read Committed),以确保每次查询都能读取到最新的数据。在 Spring Boot 中,可以使用。当您在同一个 Service 方法中执行了一个更新(update)操作,然后紧接着执行一个查询(select)操作时,
2023-12-07 17:00:02
723
原创 checkStyle结果分析及‘static‘ modifier out of order with the JLS suggestions
【代码】checkStyle结果分析及‘static‘ modifier out of order with the JLS suggestions。
2023-12-07 11:02:33
621
原创 多线程消费KafkaDemo
在该消费者中,消费线程实现了Runnable接口,在其run()方法中实现了消费者实际的逻辑,通过调用ConsumerRecord.value()方法来获取消息。消费者逻辑可以根据具体需求进行实现。这是一段基于Java开发的Kafka消费者代码。在该代码中,我们使用了多线程机制、线程池和多个消费线程来同时消费Kafka中的消息。
2023-06-20 17:32:00
1261
原创 对sessionStorage进行加密
存到浏览器上:sessionStorage.setItem('password', window.btoa(passwordInput.value));解密:passwordInput.value = window.atob(sessionStorage.getItem('password'))用户登录成功以后开发者模式可以看到session的明文,新需求要求加密...
2022-05-18 17:23:17
757
原创 oracle导出excel数据变成科学计数法
问 题: 导出excel之后因为 column字符串太长导致导出到Excel时候变成科学计数法样式;sql语句: select column from table_name;解决办法:select '="'||column || '"' column from table_name;注 解:1.column为显示异常字段 2.table_name 表名...
2022-05-17 15:38:59
3284
2
原创 Mybatis-plus分页
Dao层import com.asiainfo.server.beijing.entity.IndexLabelHeatStatistics;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import org.springframework.stereotype.Repository;import java.util.List;import java.util.Map;/** * @Author lhj
2022-05-16 10:47:07
270
原创 Jwt工具类
import io.jsonwebtoken.Claims;import io.jsonwebtoken.Jws;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import org.springframework.http.server.reactive.ServerHttpRequest;import org.springframework.util.StringUtils;import javax
2022-03-30 11:08:13
218
原创 Skip批量插入数据demo
private static final Integer BATCH_SIZE = 2000; // 批量查询的插入数据方法 public void batchSearchUploadOracle(MultipartFile file, String rptCode, String staffId, String numberType) throws IOException { List<Map<String, Object>> data = ne.
2022-03-08 13:57:38
110
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人