自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Word文档转为PDF文档

Word文档编辑很方便,但是有时候不同编辑器或者不同系统对Word文档兼容性不一致,导致我们在本地编辑好的Word文档,换一台电脑或者换一个软件打开,格式就会出现错乱,所以如果只是需要看文档的时候,还是转换为PDF文档更合适。但是有些Word文档转PDF文档工具要么是不好用,要么是收费,或者是需要登录,所以想到还不如自己用Java程序自己转换一下更方便。

2025-06-02 22:57:25 320

原创 查看单元测试覆盖率

查看文件 target/site/jacoco/index.html。执行 mvn jacoco:report。执行 mvn clean test。编写单元测试用例可以参考以下内容。pom文件配置jacoco插件。也可以在IDEA操作。

2025-05-08 20:38:15 773

原创 POI创建Excel文件

根据需求,表头需要制定2级表头,我们先定义一个Excel表头对象。@Data/*** 名称 *//*** 提示语 *//*** 类型 *//*** 背景色 *//*** 子标题 */@Data/*** 字段编码 *//*** 字段名称 *//*** 提示语 *//*** 类型 *//*** 下拉框选项 */

2025-05-06 22:16:01 614

原创 CaffeineCache自定义缓存时间

使用caffeine缓存来自定义缓存过期时间

2025-02-25 23:47:34 611

原创 Git命令

抓取源仓库的tags标签更新。查看git的tag标签列表。添加upstream路径。执行合并,合并远程的分支。查看git的分支列表。

2024-11-28 21:16:05 441

原创 字符脱敏工具类

【代码】字符脱敏工具类。

2024-10-30 18:19:50 481

原创 private field is never assigned

private field is never assigned解决办法

2024-10-17 16:23:31 1151

原创 IDEA下载安装

下载安装IDEA说明

2024-10-14 22:31:55 884

原创 mapstruct应用

mapstruct使用工具示例

2024-09-13 21:08:38 395

原创 gradle安装及配置

IDEA -> File -> New Projects Setup -> Setting For New Projects,配置Gradle 仓库。,即自己的安装目录。然后在path中添加**%GRADLE_HOME%\bin**;如果系统变量无法添加可以在用户变量中修改。打开 安装目录\init.d\ 下的 init.gradle(没有就新建一个文件)。地址为:https://gradle.org/releases/验证安装是否成功,如果看到下图样式则说明安装配置成功。,点击进行环境变量配置。

2024-08-06 20:31:14 696

原创 图片转PDF工具

【代码】图片转PDF工具。

2024-08-01 11:30:36 390

原创 PDF转图片工具

【代码】PDF转图片工具。

2024-08-01 11:16:39 466

原创 maven项目依赖本地jar包

maven项目依赖本地jar包。

2024-07-30 16:38:50 977

原创 guava-retrying使用

【代码】guava-retrying使用。

2024-07-12 14:39:21 276

原创 Java程序打印日志配置

在resources目录下新建log4j.properties配置文件,配置内容如下。POM文件中添加以下依赖。

2024-07-11 14:10:38 860

原创 压缩解压文件工具

zip4j压缩解压文件

2024-07-05 14:40:29 310

原创 Pipeline流水线组件

*** 处理器处理方法* @param handlerContext 上下文* @param t 要处理的数据*/@Data/*** 执行器名称 *//*** 执行器 *//*** 链表的下一个节点,用来保存下一个执行器 *//*** 调用该方法即调用上下文中处理器的执行方法* @param t 需要处理的数据*//*** 执行下一个节点的处理器* @param t 待执行的数据*/= null) {

2024-06-13 18:44:15 440

原创 文件已经删除但磁盘空间未释放

排查系统日志查看是否有大文件,将系统日志清理后,发现磁盘使用率恢复到了80%以下,但是磁盘使用率相较其他服务器依然很高,随着日志文件的写入,磁盘空间使用率不断上涨,用不了多久很快就会又达到告警阈值。磁盘使用率依然这么高肯定服务器有异常情况,最终发现是日志文件已经删除,但实际进程还在占用文件句柄,文件还是打开的空间没有释放。但是此方式只是清空了文件内容,如果有新的删除操作,会产生新的文件继续占用磁盘空间。通过fd清空文件,此处的228是进程ID。首先查询哪些文件已删除但是空间没有释放。

2024-06-13 16:49:13 319

原创 mvn命令安装jar包到本地maven仓库

mvn命令安装jar包到本地maven仓库,新建一个installJar.cmd文件,复制以下命令到文件中,并修改对应的内容,保存后双击执行命令文件即可。^ 可以用作同一行命令的换行符。

2024-05-29 15:36:46 380

原创 比较两个JSON之间的差异

网上找到的比较JSON工具类,比较两个JSON对象之间的差异,并将差异字段按照原JSON对象的树状结构展现出来,方便对数据进行对比。对原有方法进行了部分优化。

2024-05-15 10:05:36 3867

原创 IDEA设置全局配置

在IDEA中,选择 File -> Close Project 关闭项目。然后选择Customize -> All settings 进行全局配置,即所有项目公共的配置。

2024-03-20 15:00:34 4621

原创 @Mock @Spy @InjectMocks @Captor 注解

当我们需要对UserServiceImpl 进行单元测试时,就需要通过@InjectMocks 生成我们的被测试类UserServiceImpl ,用@Mock 来生成我们的模拟依赖对象UserManagerImpl,此时Mockito会将UserManagerImpl自动注入到UserServiceImpl 中,我们在调用userService.createUser()方法时就不会报空指针异常了。@InjectMocks注解用来创建被测试的类对象,他的依赖对项由@Mock来创建;

2024-03-18 17:34:04 3408

原创 JUNIT5+Mockito单元测试

之前写过一篇使用,使用的是junit4来编写的单元测试用例,目前很多新项目都已经使用JDK11+以及SpringBoot3+。本次基于junit5+Mockito来编写单元测试。

2024-03-13 17:10:08 1898 2

原创 使用testMe自动生成单元测试用例

对于之前的老项目或者是前期赶进度未添加单元测试用例的项目来说,手动添加单元测试耗时又费力,这时候我们就需要一款能够提高效率的一款插件来帮助我们提高单元测试覆盖率。

2023-10-10 16:47:12 11957 4

原创 MyBatis批量更新等SQL

当我们需要对MySQL数据库中的数据进行批量更新时,可以采用以下方式进行更新,以下为mybatis配置的SQL语句。

2023-09-28 13:58:59 1896

原创 mybatis-generator自动生成代码

mybatis-generator自动生成代码

2023-06-16 20:19:21 661

原创 Springboot自定义注解打印方法入参

依赖配置好后,需要我们自定义一个注解。/*** 方法英文名称,格式为:类名.方法名/*** 方法中文名称,必填/*** 描述信息,非必填@Documented 将该自定义注解添加到 javadoc 文档中@Target({ElementType.METHOD}) 该注解是作用在方法上的@Retention(RetentionPolicy.RUNTIME) 作用时机为运行时自定义注解定义完成,可以在我们的方法上面来使用这个注解了,使用如下图。

2023-04-08 15:29:55 699

原创 LUA脚本使用

通过分析以上lua脚本,可以看出脚本的执行流程。第一步:判断了一下KEYS[1]是否存在,不存在则返回-3,-3标识库存未初始化;第二步:KEYS[1]值存在,则获取到KEYS[1]的值stock,即库存数量,在获取到ARGV[1],将其转化为数字;第三步:判断一下stock库存数量是否是-1,-1表示不限制库存数量;第四步:如果库存数量不为-1,那么就判断下stock库存数量是否是大于等于要扣减的库存数,如果大于等于,表示库存是充足的可以进行扣减操作,然后返回扣减后当前库存数量;

2023-04-08 14:14:57 165

原创 并发编程之ThreadPoolTaskExecutor与ThreadPoolExecutor的区别

因此Spring的线程池在初始化对象时,也便初始化了JDK的线程池并赋值,从而操作Spring线程池处理多线程任务时,其实本质上还是JDK的线程池在执行。3、如果任务可以成功加入队列,那么我们仍然需要再次检查是否应该添加线程(因为自上次检查以来,已有的线程已死亡)或自进入此方法后线程池已关闭。2、获取线程池中的线程数,如果运行的线程少于corePoolSize数量,会尝试以给定命令作为第一个线程启动新线程(核心线程)的任务。3、判断如果JDK线程池对象不为空,则给线程池赋值核心线程数。

2023-04-08 13:57:55 931

原创 Springboot自定义配置类

Springboot自定义配置类

2023-04-08 13:55:47 1842

原创 并发编程之Future原理解析

以上就是对于FutureTask的分析,我们可以了解FutureTask任务执行的方式以及Future.get已阻塞的方式获取线程执行的结果原理,并且从代码中可以了解FutureTask的任务执行状态以及状态的变化过程。

2023-04-08 13:48:41 406

原创 CompletableFuture解析

CompletableFuture解析

2023-04-08 13:35:40 759

原创 POI创建联动下拉框的Excel

我们有时候需要在Excel中加入级联下拉框,POI功能很强大,可以实现这样的功能,这里我们使用POI实现一个省市县三级地址的级联下拉框。

2022-08-17 18:34:55 2256

原创 常用正则表达式

常用正则表达式

2022-06-15 18:45:14 161

原创 EasyExcel读写文件

EasyExcel读写文件文章目录EasyExcel读写文件1、写文件1.1 定义实体类1.2 获取表头样式1.3 获取内容样式1.4 定义标注处理器1.5 写文件1.5.1 全量写入文件1.5.2 分批写入文件2、读文件2.1 自定义分页处理器2.2 分页读取文件并重新写文件2.3 自定义读取文件监听器2.4 读取文件1、写文件1.1 定义实体类@Datapublic class DemoExportDto { @ExcelProperty("生成时间") private Str

2022-03-31 21:33:54 4818

原创 CaseFormat

Guava的CaseFormat提供了不同的ASCII字符格式之间的转换。代码示例如下: // 连接符转驼峰,首字母小写 结果testData System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data")); // 连接符转驼峰,首字母大写 结果TestData System.out.println(CaseFormat.LOWER_HYPHEN.to(

2022-02-23 17:38:31 1010

原创 ThreadPoolTaskExecutor与ThreadPoolExecutor的区别

ThreadPoolTaskExecutor与ThreadPoolExecutor的区别文章目录ThreadPoolTaskExecutor与ThreadPoolExecutor的区别1. ThreadPoolExecutor2. ThreadPoolTaskExecutor1. ThreadPoolExecutorThreadPoolExecutor 是JDK自1.5添加的线程池。以下是初始化线程池的构造方法。public ThreadPoolExecutor(int corePoolSize,

2021-09-03 18:28:47 672

原创 Springboot自定义Starter

Springboot自定义Starter文章目录Springboot自定义Starter1. 简介2. Starter实现原理3. 自定义Starter3.1 定义需求3.2 创建Starter工程3.3 自定义配置属性类3.4 创建业务类3.5 创建自动配置类3.6 创建spring.factories文件3.7 安装jar包4. 使用Starter1. 简介SpringBoot的Starter可以理解为一个可拔插式的插件,它提供一系列便利的依赖描述符,您可以获得所需的所有Spring和相关技术的一

2021-07-21 00:23:18 285

原创 Java中Files工具类的使用

Java中Files工具类的使用文章目录Java中Files工具类的使用1. 介绍2. 判断文件是否存在3. 删除文件4. 创建文件及文件夹5. 写文件6. 递归删除文件及文件夹1. 介绍Java NIO Files类(java.nio.file.Files)提供了多种方法来处理文件系统中的文件。比直接使用File文件要方便的多了。2. 判断文件是否存在boolean exist = Files.exists(Paths.get(path));boolean notExist = Files.n

2021-07-20 21:24:51 13066

原创 springboot自动装配

文章目录1. 何为自动装配2. 自动装配的优势3. 自动装配原理3.1 @SpringBootApplication3.2 @SpringBootConfiguration3.3 @ComponentScan3.4 @EnableAutoConfiguration4. 总结1. 何为自动装配springboot相较于spring的一大优势就是springboot自动装配,那么何为自动装配呢?在我们之前使用spring进行开发的时候,我们需要通过XML配置文件配置我们所需要的Bean对象到spring容

2021-07-13 22:50:37 3926

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除