- 博客(132)
- 资源 (2)
- 收藏
- 关注
原创 基于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
原创 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
原创 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
原创 简单几步启用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
原创 如何根据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合并图片(开箱即用)已解决透明背景色处理为黑色的问题
1.通过 ImageIO#read 读取图片文件为 java.awt.image.BufferedImage。
2024-01-30 15:12:48
576
5
原创 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安装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
原创 Gson序列化/反序列化完美适配方案?
目前支持自定义枚举字典(Enum)、数字(int、long、float、double)及其包装类、BIgDecimal、List。后期添加对Date、LocalDate及LocalDateTime的支持。
2023-11-30 00:27:13
1033
几个实用的MySQL内置函数实用说明
2023-08-13
Navicat premium15
2022-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人