- 博客(140)
- 收藏
- 关注
原创 Jenkins服务器配置密钥对
4. 配置完成后,在 Jenkins 服务器上测试连接。2. 将显示的公钥内容复制,然后在目标服务器上执行。1. 在 Jenkins 服务器上执行以下命令。3. 在目标服务器上检查 SSH 配置。
2025-05-20 09:44:45
46
原创 排查服务器内存空间预警思路
这是导致根分区空间不足的根本原因。MySQL 数据文件过大需要针对性处理。如果存在 /var/lib/mysql,可能是数据库文件过大。从您的排查结果可以明确看出,/var/lib/mysql。
2025-05-12 13:59:36
486
原创 Java 17配置Jenkins
检查 Jenkins WAR 文件。找到 Java 17 的安装路径。修改 Jenkins 服务配置。确保目录存在并设置正确的权限。
2025-05-08 09:49:49
458
原创 Jenkins 服务器上安装 Git
如果这些命令显示配置为空或报错,说明还没有配置全局变量。你可以使用以下命令进行配置。enkins Pipeline 中的 Git 使用示例。配置 Git 凭证(如果需要访问私有仓库)在 Jenkins 中配置 Git。如果遇到 SSL 证书问题。查看当前 Git 配置。配置 Git 仓库访问。
2025-05-07 16:15:28
429
原创 在Ubuntu 22.04 上安装 JDK 1.8.0_281,同时保留现有的 JDK 17.0.15
在 Jenkins 中配置 OpenJDK 8。添加 OpenJDK 仓库。# 默认使用 JDK 17。安装 OpenJDK 8。配置 Java 版本切换。切换 Java 版本。
2025-05-07 15:56:26
284
原创 Ubuntu开放端口
在 Ubuntu 中,我们可以使用 ufw (Uncomplicated Firewall) 来管理防火墙。如果需要重置防火墙规则。如果需要删除某个规则。
2025-05-06 17:05:05
377
原创 git中feature跟hotfix是什么意思
在 Git 工作流中,feature 和 hotfix 是两种常见的分支类型,它们分别用于不同的开发场景。通常以 hotfix/ 开头,后跟修复描述,例如:hotfix/fix-login-crash。将新功能的开发与主分支(如 main 或 develop)隔离,避免影响稳定代码。修复完成后合并回 main 和 develop 分支,确保修复内容同步到开发分支。含义:hotfix 分支用于快速修复生产环境中的紧急问题(如 Bug)。含义:feature 分支用于开发新功能或实现特定需求。
2025-03-26 10:02:08
484
原创 为什么说合并后删除分支是常见操作?
操作影响合并后删除 B 分支✅ 安全:A 分支保留所有已合并内容,B 的提交历史通过 A 分支永久存在。保留已合并的 B 分支⚠️冗余:增加分支列表的复杂性,无实际价值。删除未合并的 B 分支❌ 危险:未合并的提交可能丢失。因此,合并后删除 B 分支是安全且推荐的操作,既能保留修改内容,又能保持仓库的简洁高效。
2025-03-26 09:58:59
324
原创 Git合并删除原理
删除 B 分支后,仅仅是删除了指向 B 分支最新提交的“标签”,已合并到 A 的提交仍然被 A 分支的提交历史引用,因此这些修改会永久保留。如果 B 分支有未合并到 A 的提交(例如合并后又新增了提交),这些提交会随着 B 分支的删除变为“悬空对象”,最终可能被 Git 垃圾回收清理。如果有 A 分支,从 A 分支上新建 B 分支,B 分支做出修改合并到 A 分支,然后删除 B 分支,A 分支还有没有 B 分支修改的内容。仅 **未合并的提交可能丢失**,但这类提交本身未被整合到 A 分支中。
2025-03-26 09:48:06
253
原创 Git分支的创建原理及特性
B 分支初始状态与 A 完全相同(代码、提交历史)。无物理文件复制**,通过指针实现高效操作。后续对 B 的修改不会影响 A,除非主动合并。删除 A 不会影响 B 的现有内容(代码、提交历史)。唯一风险是(A 独有的未合并提交可能丢失),但这些提交本身与 B 无关。如果不小心误删分支,可通过 `git reflog` 找回提交(需在垃圾回收前操作)。
2025-03-26 09:24:51
376
原创 Hutool IdcardUtil:身份证处理专家
IdcardUtil是Hutool库中的一个工具类,主要用于身份证号码的验证和相关信息的提取。它支持中国大陆的15位和18位身份证号码,以及港澳台地区的10位身份证号码。IdcardUtil提供了多种方法来处理身份证信息,包括验证身份证的有效性、获取出生日期、年龄、性别、省份等信息。
2025-03-13 10:00:12
507
原创 Hutool RedisDS:Java开发中的Redis极简集成与高阶应用
Hutool的RedisDS模块通过高度封装,使Java开发者能够聚焦业务逻辑而非底层细节。无论是快速实现基础缓存,还是构建高并发分布式系统,该工具都能显著提升开发效率。结合本文提供的配置模板与代码示例,可快速落地到生产环境。立即体验RedisDS,享受“开箱即用”的Redis集成体验!
2025-03-13 09:52:39
556
原创 Hutool CronUtil:轻量级定时任务的极简神器
我强烈推荐Hutool工具包中的模块。它通过极简配置实现全局定时任务调度,无需依赖Spring或其他框架,堪称轻量级定时任务的标杆工具。
2025-03-13 09:39:30
357
原创 开发环境需要同时安装2个nodejs版本
由于同时有vue2和vue3的项目开发情况,vue2项目的nodejs版本是12,vue3项目在node12版本下运行不了,要求最低14版本,因此要用nvm同时安装和控制2个版本。注意:nvm可以选择安装路径,但是nodejs是不可以选择安装路径的,否则会报错,其实nodejs后来安装都会安装到nvm的目录下面的。安装完成后,cmd命令输入nvm,可以查看nvm安装版本信息,如果能正确返回版本信息,则安装成功。nvm默认下载地址是国外,比较慢,可以改成国内淘宝镜像,1、卸载已经安装的nodejs版本。
2025-03-01 16:11:35
390
原创 用 Spring AOP 优化 IN 查询,效率提升巨大!
线程池,可能阻塞比较大,不要用公共的线程池最好自己定义一个返回值回调函数,对应不同返回值处理逻辑:可能是合并可能取前十条可能求和超过多少需要拆分拆分时每组多少个/*** 设置线程池*//*** 返回值处理*/Class<?/*** 超过多少开始拆分 >*//*** 拆分后每组多少*/标记需要拆分参数的注解加在需要拆分的参数上,只支持一个。因为两两组合情况非常复杂,也一般不符合实际使用情况。使用AOP实现拆分多线程并发调用合并逻辑@Aspect@Component。
2025-02-19 23:10:03
208
原创 在做分层业务的系统架构中,如何使用MapStruct进行代码优化
通过 @AfterMapping 和 @BeforeMapping 注解,可以在映射前后执行自定义逻辑。通过 @MapperConfig 定义通用配置,然后在具体的 Mapper 接口中引用这些配置。2. 使用 MapStruct 的 @MapperConfig 和 @Mapper。通过使用 @Context 和 @Mapping 注解,可以处理更复杂的映射逻辑。通过定义通用的 Mapper 接口,可以减少重复代码并提高可维护性。通过使用 Spring 注解,可以简化 Mapper 的配置和注入。
2025-02-17 23:02:30
447
原创 Hutool的EnumUtil
EnumUtil是Hutool库中一个专门用于处理枚举类型的工具类。它为Java开发者提供了丰富的功能,以简化对未知枚举类型的操作。以下是EnumUtil获取枚举名称列表:通过方法,可以获取指定枚举类中所有枚举对象的名称列表,便于遍历、显示或记录枚举信息。获取枚举字段值:使用方法,可以获取指定枚举类中每个枚举对象的特定字段值,便于根据字段进行操作或展示。根据条件获取枚举对象:通过方法,可以基于lambda表达式和值,灵活地获取与之匹配的枚举对象,适用于需要通过属性值查找枚举对象的场景。
2025-01-25 07:22:31
810
原创 Java数字转换工具类-NumberUtil
NumberUtil是一个用于处理数字的工具类,提供了丰富的功能,包括数值运算、格式化、随机数生成、类型转换等。它广泛应用于各种Java项目中,特别是在需要处理浮点数精度、格式化输出以及数值判断的场景中。NumberUtil提供了多种数值运算方法,包括加法、减法、乘法和除法。这些方法支持多种数据类型,如floatdouble和BigDecimal,能够满足不同精度需求的计算。// 结果为4.0这些方法不仅简单易用,还能避免直接使用基本数据类型时可能出现的精度问题。NumberUtil。
2025-01-23 21:01:12
556
原创 我们说StringBuilder是线程不安全的,是什么原因呢?
尽管在单线程环境下提供了高效的字符串操作,但在多线程环境中使用时必须谨慎。由于缺乏同步机制,它容易引发竞态条件和数据不一致的问题。为确保线程安全,可以选择使用线程安全的或通过手动同步来控制对的访问。理解这些原理对于编写健壮的Java应用程序至关重要。
2025-01-23 20:55:10
351
原创 ReUtil- 一个强大的正则表达式工具库
ReUtil是Hutool库中的一个正则表达式工具类,它封装了多种常用的正则表达式操作方法,使得开发者可以更加方便地处理字符串。ReUtil提供了静态方法,允许开发者直接调用这些方法来执行正则表达式相关的操作,而无需手动编写复杂的正则表达式代码。ReUtil类通过封装常用的正则表达式操作方法,极大地简化了Java开发中的文本处理工作。无论是简单的字符串匹配、复杂的分组提取,还是特殊字符的处理,ReUtil都能提供高效且易用的解决方案。
2025-01-23 20:43:06
1054
原创 当小白拿到一个vue项目,如何初始化
确保兼容性:检查 package.json 中的 engines 字段,确认项目所需的 Node.js 和 npm 版本与你安装的版本兼容。通过以上步骤,你应该能够顺利安装 Node.js 环境并安装 Vue 项目的依赖。在拿到一个 Vue 项目后,按照以下步骤先安装 Node.js 环境,再安装项目依赖。输入 node -v 检查 Node.js 是否正确安装,应该显示已安装的 Node.js 版本号。输入 npm -v 检查 npm(Node 包管理器)是否正确安装,会显示对应的版本号。
2025-01-15 13:45:34
1068
原创 npm ERR! network request to https://registry.npmjs.org/yarn failed, reason: connect ETIMEDOUT 104.16
刚安装npm install xxx时,出现以下如图错误:原因:因为访问网址需要翻墙才能访问,所以在国内经常会出现连接超时等问题。为了解决这个问题,可以将npm的源设置为国内的镜像例如。
2025-01-15 13:37:50
300
原创 线程之间的通信,你悟了吗?
在多线程编程中,线程之间的通讯是至关重要的一环。它允许多个线程之间进行有效的数据交换和状态协调,以确保多线程程序的正确性和高效性。本文将介绍几种常见的Java线程通讯方式。这是最基础的线程间通信方式,它们需要与synchronized关键字一起使用:简单直接。:容易出错,例如忘记唤醒其他线程或错误地调用wait()/notify()。
2025-01-13 08:42:45
230
原创 零基础 监控数据可视化 Spring Boot 2.x(Actuator + Prometheus + Grafana手把手) (上)
依赖项:确保你的 Spring Boot 应用程序已经正确配置了 Micrometer 和 Prometheus 支持(如 micrometer-core 和 spring-boot-starter-actuator 依赖)。找到最新版本的发布页面,下载 prometheus-.windows-amd64.zip 文件(例如 prometheus-2.40.0.windows-amd64.zip)导航到 Prometheus 解压目录(例如 cd C:\Prometheus)。
2025-01-09 10:46:46
1831
原创 什么是看门狗机制?它是如何给Redis的Key续约?
看门狗”(Watchdog)是一个广泛应用于计算机科学和工程领域的术语,指的是一种监控机制,用于监督系统、应用程序或硬件的正常运行,并在检测到异常或故障时采取预定义的恢复措施。看门狗的主要目的是提高系统的可靠性和稳定性,防止系统挂起或出现长时间的无响应状态。本文,我们详细地分析了什么是看门狗以及Redisson 的看门狗机制,它通过自动续期锁的有效期,简化了分布式锁的管理,减少了开发人员手动处理锁续期的复杂性。然而,理解其工作原理和注意潜在的配置细节,对于确保系统的可靠性和性能至关重要。
2025-01-08 16:30:57
768
原创 线程池动态调整
想象一下这样的场景:在电商系统中,平时的订单量可能比较平稳,但在促销活动期间,订单量会突然暴增。这时候,我们就需要能够动态调整线程池的参数。动态调整线程池是一个非常实用的技术,它能够帮助我们的系统更好地适应负载变化。通过合理的监控和调整策略,我们可以让系统在保持高性能的同时,也能够更有效地利用系统资源。:除了上述实现的基础指标外,建议还要监控任务执行时间、拒绝任务数等指标,这样可以更全面地评估线程池的性能状况。:在调整线程池参数时,要注意线程安全性,避免因并发操作导致的问题。
2025-01-08 09:06:02
729
原创 Windows下批量删除 .DS_Store MacOS隐藏文件
从Mac电脑拷贝过来的项目含有大量以"._"开头的隐藏文件,不影响正常运行,但是很影响强迫症的心情,由于项目层级比较深,一个一个删除比较费时,如何批量把这些文件处理了呢?
2025-01-08 09:00:13
722
原创 9 个 Java 性能黑科技
性能优化是每个Java开发者绕不开的终极技能,无论是处理高并发业务还是优化系统响应时间,掌握一些性能黑科技绝对让你事半功倍!今天带来9个Java性能优化技巧,不仅适用于日常开发,还能在面试中让你脱颖而出!一、用替代String拼接掌握这9个Java性能黑科技,不仅可以优化代码运行效率,还能帮助你写出更优雅、更易维护的代码。性能优化并非一蹴而就,需根据业务场景权衡,切勿盲目过度优化。
2025-01-07 16:54:49
841
原创 SpringBoot内置工具类
一般来说,不同的SpringBoot应用程序将得到不同的位置,但是,只需重新启动应用程序即可获得相同的位置。内部注册的是一个BasePackagesBean,该类是静态私有的所以你没法直接访问,只能通过上面的方式。提供访问应用程序主目录的途径。注:这里的get方法参数是可变长参数,你可以传递多个key,获取时遍历遇到不为null的直接返回。如果你需要在代码中获取当前应用启动类所在的基包basePackages,那么你可以通过如下方式。通过jar运行后,source输出的是当前运行的jar包路径。
2025-01-07 16:00:25
1106
原创 Spring Boot 内置工具类
Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启。SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查。断言是一个逻辑判断,用于检查不应该发生的情况。获取当前对象的代理对象。
2025-01-03 09:48:13
469
原创 Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass
这个报错是由 Java 9 及之后的模块化系统(JPMS)引起的,这表明某个第三方库试图通过反射访问受限的 JDK 内部 API。这种访问在 Java 9 及之后的模块系统中受到严格控制,默认情况下不再允许访问 java.base 模块中的 java.lang 包。在运行项目时添加以下参数来开启这种默认不被允许的行为。
2024-12-07 15:08:45
1624
原创 手搓一个不用中间件的分表策略
首先,定义一个分片策略类,用于决定数据存储在哪个分表中分片策略:根据订单日期决定数据存储在哪个分表中。数据库连接管理:管理数据库连接,所有分表都在同一个数据库中。动态创建表:根据当前月份动态创建新的表。订单操作:执行具体的数据库操作,如插入和查询。通过动态生成表名来实现分表。使用示例:展示如何使用这些类来实现分表功能。这个方案适用于在同一数据库中按月份进行分表的需求,可以根据实际业务场景进一步扩展和优化。
2024-11-26 23:35:05
498
原创 当你项目服务器磁盘报警
但是又不能一味的直接删。因为直接删除,可能会造成应用无法打印后续的错误日志,该问题常见于weblogic服务器,jboss服务器等这些大型中间件,这个在生产环境上要尤需注意。nohup.out会一直一直自己增长下去,如果你的服务器硬盘不给力的话,很容易把应用也挂掉(硬盘没空间 ,啥都玩不转)两个我都用过,不用担心网上所说的性能问题,通常2/3 个G的文件都是1-2秒执行完毕。因此就有了我们不停止服务直接,清空nohup.out文件的方法。当你们公司运维收到这样的邮件,大概率日志文件过大引起的。
2024-11-21 15:42:01
433
原创 提升工作效率的好用的IDEA插件
助手,有2个非常实用的功能:①支持自动生成对象拷贝代码;增强插件,最好用的功能是可以查看到每一行代码的最近一次提交信息。:快速转换变量名称,支持常见的大小驼峰、常量等7中变量名切换。:编码绘制时序图、类图、对象图、活动图、思维导图。:可以在源码中添加注释,帮助阅读理解源码。:编辑器右侧展示代码小地图,方便定位。:在敲代码时有抖动酷炫的特效。:一键给所有类和方法生成注释。:查找解决项目中的依赖冲突。:自动找出一些简单的BUG。:翻译插件,帮助理解代码。:根据代码自动生成时序图。:代码大小/行数等统计。
2024-11-20 10:06:51
1083
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人