Mybatis-Plus 优雅处理字段填充
前言 在数据库操作中,有些字段的值在插入或更新时需要自动填充,比如创建时间、更新时间、操作用户信息等 @TableField#fill 注解的作用 字段自动填充策略。该属性用于指定在执行数据库操作(如插入、更新)时,如何自动填充字段的值。通过使用 FieldFill 枚举,可以灵活地控制字段的填充行
逻辑删除和唯一索引冲突的解决方案
背景 在“阿里巴巴java开发手册”中强制建议:业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引 说明:不要以为唯一索引影响了insert性能,这个速度损耗可以忽略,但提高查找速度是明显的;名外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然会有脏数据产生。 但
SpringBoot 读取自定义 yaml 配置
前言 @ConfigurationProperties 方式 实现 PropertySourceFactory package cn.phixlin.config; import org.springframework.beans.factory.config.YamlPropertiesFact
Kafka-Producer 重要配置参数
前言 Kafka在弹性、容错性以及高吞吐量方面有着很大的优势。想要达到生产环境最优,发挥这些特性,需要进行一些特殊配置。Kafka提供了非常多的配置属性,对于初学者而言,基础的配置已经能满足大部分使用场景,本文记录几个重要但不常见的针对 Producer 的配置参数。 acks min.insync
SpringBoot 集成 Kafka
前言 Kafka是一个高吞吐、分布式、基于发布订阅的消息系统。常用于日志收集、消息系统、用户活动追踪、运营指标监控,大数据实时计算等场景。 主要概念: Broker:Kafka集群中的服务器,可以有多台服务器,用来存储消息。 Topic:消息的集合,可以有多个Topic,每个Topic可以有多个分区
SpringBoot + Maven 打包部署示例
前言 在现代企业级应用开发中,快速构建、高效部署和易于维护是至关重要的。Spring Boot 以其简洁的配置和强大的自动化功能,极大地简化了这一过程。本文将介绍如何使用 SpringBoot 结合 Maven 进行项目构建和打包。示例最终会构建出目录结构为 lib、conf、bin、logs的zi
Srping Batch 实现批批处理任务
引言 Spring Batch 是一个轻量级的开源框架,它提供了一种简单的方式来处理大量的数据。它基于Spring框架,提供了一套批处理框架,可以处理各种类型的批处理任务,如ETL、数据导入/导出、报表生成等。Spring Batch提供了一些重要的概念,如Job、Step、ItemReader、I
Spring Boot + MDC 实现全链路调用日志跟踪
前言 日志追踪是一种追踪请求在系统中流转过程的技术,可以帮助我们定位问题、分析性能瓶颈以及进行故障排查。但在多线程环境中,若没有相关框架的支持,想要实现日志追踪,就需要编码实现将主线程的日志参数传递给子线程,本文就在线程池场景下借助MDC实现了traceId参数的透传。 MDC介绍 MDC(Mapp
SpringBoot + Log4j2 + TLog 实现日志追踪
前言 随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候。因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。 TLog 轻量级的分布式日志标记追踪神器 提供了一种最简单的方式来解决日志追踪问题,它不收集日志,也不需要另外的存储空
后台程序 报错内容:java.sql.SQLException: Java heap space
问题 使用 MybatisPlus 的游标查询,报错 java.sql.SQLException: Java heap space 原因分析 SQLException 引发 Java heap space 溢出可能是以下原因导致的: 查询没有通过参数,而是直接查询出所有的记录。 是由于 mysql