自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流沙QuickSand

行者常至,为者常成

  • 博客(132)
  • 资源 (2)
  • 收藏
  • 关注

原创 记一次Java使用正则解析日期分组匹配顺序问题?

记录一次Java使用正则解析日期分组匹配顺序问题

2025-03-07 11:41:33 175

原创 基于bouncycastle的SM2加解密及签名验签实现

bouncycastle是几个强大的算法库,封装了诸多的加密算法。SM2等国密也已在其中实现。

2025-02-06 11:34:10 326

原创 Java正则转带中划线或下划线属性名为驼峰命名

利用Java正则分组匹配的方式,将属性名中 -(_) + 后接的字母,匹配上了去掉当前 -(_),将后接的字母转为大写,再追加拼接起来,就完成了驼峰命名。Java正则转带中划线或下划线属性名为驼峰命名,

2025-01-17 10:07:24 133

原创 MinIO服务器文件复制(Windows环境&Linux环境)

(注意:需要指定MinIO连接服务的别名,通过命令:mc alias set myMinio [host] [user] [password] 来指定),此处 别名就是 myMinio。二、准备好MinIO服务器需要复制的完整文件路径,以及配置需要复制的目标文件完整路径。执行脚本 mccp.sh 或 mccp.bat。三、创建MC shell脚本。1.Windows环境。

2024-12-26 11:56:31 660

原创 时钟之Canvas+JS版

上一篇介绍使用CSS+JS方式实现,但元素泰国单一。此篇将以HTML5的canvas标签结合JS来实现。HTML代码JS代码//计时器//钟表半径//时针刻度宽度//分针刻度宽度//时针宽度//分针宽度//秒针宽度} else {})if (!return;//去除透明度//移动中心//设置钟表半径//调整路径结束点样式//开始绘制});//火狐浏览器问题//画时钟圆心ctx.fill()

2024-11-15 11:00:34 221

原创 时钟之CSS+JS版

此版本绘制的时钟基于CSS+JS模式。优点操作简单,缺点当然是不够灵活。

2024-11-15 10:51:10 490

原创 JDK动态代理中如何执行代理接口中的default方法?

试想一下,有很多场景下,我们有特殊要求,希望在JDK动态代理的接口中希望有自己自定义的逻辑,而后再执行代理方法。// 此处可以检查 msg,以及一些默认赋值// 再调用执行方法抽象方法send()的参数 msg,我们希望设置一些公共的参数,但是在每一处调用时都设置一次,就显得重复啰嗦。因此,在checkThenSend()中就可以统一设置值,然后再调用 send()方法。本文就是如何实现从而达到目的。

2024-11-13 09:53:26 326

原创 基于Spring事务模板编程式事务小工具

基于Spring事务,官方推荐使用@Transactional注解的声明式事务,使用便捷,无需关心底层实现,只需关心注解中的参数含义及使用规则。然而在很多场景下(特别是复杂的业务逻辑、更甚在子线程、多线程中),往往声明式事务会出现意想不到的结果。这时候针对特定场景,这时编程式事务更加得心应手。

2024-11-01 10:58:22 216

原创 Nginx配置

NGINX参考配置

2024-09-04 14:11:10 419

原创 PDF模板填充新姿势,开箱即用

由于之前使用Itext5工具填充PDF模板后,会导致填充后的PDF文件体积变得很庞大。怀疑了嵌入字体、PDF模板编辑转换和编辑等等的原因,但最后都无功而返,查阅了官方文档,也没得出解决方案。因此,退而求其次,换上了Itext7,官方说过,性能相较Itext5更出色。

2024-08-01 10:47:18 442

原创 Java图片压缩

前言:压缩原理,基于工具thumbnailator,其底层也是基于JDK提供的BufferedImage及Graphics2D重新绘制图片。

2024-07-26 18:44:56 283

原创 简易版接口防重实现(分布式锁)

接口防重亦是分布式锁的一种特殊形式。市面上最典型的就是大名鼎鼎的Redisson实现的分布式锁。但使用Redisson仅仅作为一个锁,未免大材小用,同时也显得臃肿。因此,有必要实现一个类似功能且安全高效的、简单的分布式锁。利用Spring提供的切面技术,SpringEl表达式语言,JDK自定义注解,Redis及Lua等。2.定义切面逻辑处理3.原理说明利用Redis Client执行Lua的原子特性,在判断Redis中是否存在当前的Key,如果存在,则抛出异常,表示当前请求的数据已被占用

2024-06-11 10:42:03 493

原创 如何本地用户(不联网)安装Windows11系统(本地用户)?

简单理解,OOBE就是一个沙箱(或黑盒)环境,Windows提供一系列工具供你使用。答案是肯定的,Windows提供了一个OOBE(Customize the Out of Box Experience,Win11系统的专业版安装,默认在没网环境无法完成安装,需要联网登录MS账号方能进行。2.执行以下命令创建本地账号,密码可选(如果同时设置密码,密码有最小长度限制)系统重启后,根据提示便能顺利完成本地用户下的Win11系统安装。)的工具,即创建本地用户,绕过联网环节,从而完成系统安装。

2024-05-29 09:04:29 1813

原创 Windows安装MySQL 8.4.0免安装版

3.1 初始化MySQL服务(--console 将打印初始化默认的root登录密码)1 管理员权限打开cmd,切换到MySQL安装路径的bin目录下。2 移除已安装的MySQL服务(若有)4.1 使用默认root密码登录。2.1 停止老的MySQL服务。4 登录MySQL并修改密码。3.2 执行MySQL安装。3.3 启动MySQL服务。4.2 必须强制修改密码。4.3 创建远程登录用户。3.安装MySQL服务。

2024-05-11 21:27:45 1442

原创 如何调用Java接口中默认方法?

那么就会陷入无限循环中。因此,只能采取其他方式,比如以上获取的是接口的默认实现方法;当然,如果是接口的抽象方法,那么就可以在代理方法java.lang.reflect.InvocationHandler#invoke实现自己的逻辑,比如调用外部接口的处理逻辑等等。原因很简单,JDK动态代理接口的对象本身就是java.lang.reflect.InvocationHandler,如果再调用。那么,如果该接口我们不想有实现类,又想要调用。注意:接口没有实现,不能直接通过反射调用!,从而可动态调用方法。

2024-04-30 12:05:59 1187 2

原创 动态创建运行时Java Bean

基于Java字节码技术,如ASM、Javassist,前者偏底层、构建复杂,但性能相对较高;后者提供了友好的API接口方法,优雅简单,但性能稍弱。

2024-04-23 23:32:36 352 2

原创 一个Java反射小工具

利用JDK提供的反射工具类,可实现简单的Java Bean的属性赋值、获取属性值、获取所有属性及指定属性名的属性等。

2024-04-23 23:15:40 351

原创 简单几步启用Ubuntu root用户密码登录

找到 PermitRootLogin 和 PasswordAuthentication 参数,将其值均改为 yes 参数修改为 yes。Ubuntu默认登录用户为ubuntu,且禁用了root用户使用密码方式登录。但还未完,否则重新打开新的连接,输入刚才的root密码登录,发现仍然无法登录。输入新设置的root用户密码,此时root密码已重置成功。3.执行以下命令,打开 sshd_config 配置文件。2.使用sudo修改root用户密码。4.重启ssh服务即可生效。

2024-04-10 14:33:56 1448 2

原创 SpringBoot配置Redisson客户端

Redisson,最出名的莫过于扩展了Redis应有的功能,提供了简而易用的分布式锁。更多详细介绍不作赘述。

2024-04-07 11:23:01 1215 1

原创 SpringBoot响应式RedisClient配置

大多数场景,默认配置的Redis客户端不满足业务场景,根源在于Redis key、value 序列化反序列化问题。因此,有必要配置自定义的客户端来满足需求。

2024-04-07 10:45:17 585

原创 如何通过Spring提供的EL表达式执行bean的属性或方法?

如何通过Spring提供的EL表达式执行bean的属性或方法?

2024-04-03 17:36:47 866 1

原创 如何根据nacos config动态刷新实时做你要想要做的事?

原理:利用Spring提供的监听器,侦听nacos发布事件(SpringCloud提供):org.springframework.cloud.endpoint.event.RefreshEvent即可完成。比如:根据配置动态修改bean等。

2024-04-03 16:55:09 305

原创 如何动态往Spring容器注册/移除bean?

第二问:使用org.springframework.beans.factory.support.BeanDefinitionBuilder来构建BeanDefinition。第一问:可注入bean工厂org.springframework.beans.factory.support.DefaultListableBeanFactory得到;几个关键点:如何拿到Spring上下文来创建bean或移除bean?如何准备构建bean所需的BeanDefinition?本文不谈原理,直接上实战。

2024-04-03 16:47:21 661

原创 巧用lambda表达式构建各种“树”

利用jdk8 lambda表达式分组函数,可巧妙构建各种树,比如地区树,可以利用其多线程特性充分利用CPU提高性能。以下为处理构建地区树的核心逻辑。

2024-04-03 16:31:26 553

原创 IText5填充PDF表单使用自定义字体中文生效而英文和数字不生效?

为什么使用IText5填充PDF时,使用自定义字体(特别是某些新兴的字体)时中文生效,英文和数字不生效?查了相关资料,发现无果,或者都不生效。

2024-03-19 21:56:12 1105 3

原创 如何读取java类的注释?

利用jdk的tools.jar提供的接口,便可轻松获取java类的文档注释。如类、构造方法、普通方法、成员属性等,都可以获得其注释相关信息。

2024-03-15 11:25:19 1506 1

原创 Java正则提取地址的省市区(县/市)

Java正则提取地址的省市区县值。

2024-03-15 11:10:22 1403

原创 一文读取微信支付宝PDF文件数据

主要读取PDF的表格数据,以微信支付宝为例子展开,开箱即用。

2024-03-08 14:27:46 382 1

原创 Java合并图片(开箱即用)已解决透明背景色处理为黑色的问题

1.通过 ImageIO#read 读取图片文件为 java.awt.image.BufferedImage。

2024-01-30 15:12:48 576 5

原创 itext5动态创建表格

【代码】itext5动态创建表格。

2024-01-01 20:01:50 1258 3

原创 PDF模板填充,基于IText5(改进版)

【代码】PDF模板填充,基于IText5(改进版)

2024-01-01 19:57:51 1089

原创 PDF模板填充,基于IText5

对于PDF模板填充,有很多现有的Java库,付费版本略过。较出名的有Apache的PDFBox,以及ITextPdf。而后者具有两个很大的版本ITextPdf-5和ITextPdf-7,ITextPdf-7功能更强大,但可能存在商业版权问题。之前也用过一阵,没驾驭住。今天使用 ITextPdf-5,支持文本填充、图片填充 及 添加页码。动态表格想实现,但较困难,知道的大佬欢迎骚扰(⊙o⊙)…

2023-12-29 17:24:01 1271 2

原创 NGINX常用配置

【代码】NGINX常用配置。

2023-12-24 14:42:26 444 2

原创 nginx安装letsencrypt证书

建立certbot软链接:ln -s /snap/bin/certbot /usr/bin/certbot。先将nginx设置软链接,否则如不是默认安装的nginx会报错找不到nginx命令。值为certbot 提示生成的:arCjK1Xoi_xxxxxxxxxxxxx。官方推荐通过cerbot客户端安装letsencrypt。1.安装推荐安装letsencrypt证书的客户端工具。官方推荐使用snap客户端安装cerbot客户端。(2)泛域名方式安装证书。(1)安装单个域名证书。验证DNS解析是否成功。

2023-12-23 01:00:32 782

原创 Linux安装NGINX

2.执行预编译(更多配置https://nginx.org/en/docs/configure.html)由于nginx安装ssl模块需要OpenSSL源码,故需要下载解压,3.执行编译和安装(需在configure 同级路径执行)并通过--with-openssl指定。1.安装nginx所需依赖。4.测试/启动/重启/停止。0.下载nginx源码。

2023-12-22 22:05:10 472 1

原创 基于IText7 PDF模板填充?

后记:有一点没处理好,就是设置字体,有知道的大佬支招!

2023-12-06 01:34:35 1086

原创 Gson序列化反序列化之日期时间处理?

【代码】Gson序列化反序列化之日期时间处理?

2023-12-01 21:46:05 1284

原创 Gson序列化/反序列化完美适配方案?

目前支持自定义枚举字典(Enum)、数字(int、long、float、double)及其包装类、BIgDecimal、List。后期添加对Date、LocalDate及LocalDateTime的支持。

2023-11-30 00:27:13 1033

原创 MySQL清除数据库表存储过程

MySQL清除数据库表存储过程,使用到mysql游标。

2023-10-18 16:27:26 134

原创 docker安装mysql

docker安装mysql。

2023-10-16 02:26:01 67

几个实用的MySQL内置函数实用说明

日期格式化函数: DATE_FORMAT:时间格式化为字符串; STR_TO_DATE:时间字符串转为为日期格式; 日期加减函数: DATE_SUB:日期做减法 DATE_ADD:日期做加法

2023-08-13

Windows命令行集锦

大而全的Windows命令行工具,满足日常的使用。 用得好方便快捷,省去不少麻烦的事情。

2023-04-28

MuseTransfer Chrome插件

一款开源的Chrome浏览器在线资源传输工具

2022-02-17

Navicat premium15

Navicat Premium 15是一个数据库管理工具,特别 对于MySQL有更友好支持。支持链家MySQL、Oracle、SQL server等多种数据库,快速便捷创建、管理和维护数据库。

2022-02-17

空空如也

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

TA关注的人

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