- 博客(143)
- 资源 (11)
- 收藏
- 关注
原创 架构设计之道:深度解析 Spring Boot JPA 中的动态抓取策略 vs 懒加载
懒加载 (Lazy Loading):适合小型管理后台、原型开发或关联深度极浅的场景。它能缩短开发周期,但埋下了生产环境崩溃的伏笔。动态抓取策略 (Dynamic Fetching):适合中大型互联网应用、高并发系统。它将 SQL 执行权从 Hibernate 手中夺回,交还给开发者,虽然增加了初期代码量,但在系统稳定性、可监测性和性能调优上具有压倒性优势。结论:在品牌与多维度统计系统的设计中,应坚持关闭 OSIV,全面推行基于枚举数组的显式动态抓取方案。
2025-12-24 21:05:23
335
原创 构建企业级RAG系统:Java与向量数据库的深度集成与优化实战
Java 开发者在构建 RAG 系统时,拥有成熟的工程生态优势。通过或Spring AI串联 Milvus/Pinecone 等向量基础设施,我们可以快速构建原型。但要达到“企业级”标准,必须深入到数据切分策略、混合检索算法、重排序机制以及本地化推理性能优化的细节中去。RAG 不仅仅是一个 API 的调用链,更是一个对非结构化数据进行深度理解和治理的系统工程。
2025-12-20 19:50:33
728
原创 从 Spring Boot 2.x 平滑迁移至 3.x:Jakarta EE 9 与 Java 17 的挑战与机遇
从 Spring Boot 2.x 迁移到 3.x 是一次“伤筋动骨”但也“脱胎换骨”的过程。挑战在于处理 Jakarta EE 的包名变更、适应 Spring Security 6 的新配置模式以及解决第三方库的兼容性。机遇在于获得了 Java 17 的强大语法糖、GraalVM 原生镜像的极速启动能力以及更加现代化的观测性体系。作为工程师,我们不应畏惧版本升级。通过先升级到 2.7、利用 OpenRewrite 自动化工具、以及充分的单元测试覆盖,我们可以将风险降到最低。
2025-12-14 21:32:45
925
2
原创 Spring Boot 3 + Thymeleaf + Bootstrap 5 + Alpine.js 最佳实践开发指南
样式:全权交给,利用 utility classes (p-2mt-3d-flex) 快速布局。交互Alpine.js负责显隐、Tabs、双向绑定。数据Thymeleaf负责后端直出 HTML。构建,无任何前端构建流程。
2025-12-14 19:41:27
1103
原创 Spring Boot 4.0 RC2发布!这 6 大升级,让 Java 开发效率飙升 300%
Spring Boot 4.0 RC2带来六大核心升级:1) 强制Java 21基线,支持虚拟线程提升并发性能;2) 原生GraalVM集成,实现毫秒级冷启动;3) 原生API版本控制,简化路由管理;4) BeanRegistrar接口支持动态Bean注册;5) 声明式HTTP客户端@HttpExchange取代Feign;6) 增强开发者工具链。这些改进显著提升开发效率,特别适合云原生、高并发和Serverless场景。实测显示吞吐量提升7倍,内存占用降低25%,是Java开发生态的重要进化。
2025-11-18 10:04:18
880
原创 Java 25 正式发布:最新LTS版本,开启更简洁、高效、安全的开发新篇章
Java 25作为长期支持版本正式发布,带来多项功能更新和优化。该版本显著简化了基础语法(如Main方法和构造函数体),新增模块一次性导入和原始类型匹配功能。在并发性能方面,引入结构化并发、作用域值等特性,并优化垃圾回收机制和对象头存储。虽然迁移需考虑32位支持移除等注意事项,但这些现代化改进将降低学习门槛,提升开发效率,是了解未来技术趋势的重要参考。
2025-10-29 10:55:58
651
原创 Spring Boot百万级Excel处理解决方案
对于超过500万行的数据集,建议采用分片导出机制,通过多个Excel文件打包为ZIP输出,避免单个文件过大导致的客户端处理问题。该方案已在电商订单导出(单文件120万行)场景验证,在4核8G服务器上平均耗时4.8秒,内存峰值稳定在200MB以内。fastexcel写入。
2025-08-11 16:52:37
988
原创 jobrunr xxljob 怎么选?
Spring Boot任务调度方案对比:JobRunr vs XXL-JOB JobRunr适合轻量级微服务场景,采用去中心化架构,支持异步任务,集成简单,适合Java开发者与Spring生态无缝协作。XXL-JOB是企业级调度方案,提供中心化管理、任务分片和DAG支持,适合复杂调度需求,但需额外部署调度中心。 选型建议: 选择JobRunr:微服务架构、代码驱动、无需复杂任务依赖 选择XXL-JOB:企业级调度、需要任务分片/DAG、强UI管理 两者均支持定时任务和失败重试,主要区别在于架构模式和功能深度
2025-07-31 16:30:24
1123
原创 Spring Boot 事务方法没有异常,为什么事务还是回滚了?
Spring Boot事务方法无异常却回滚的常见原因包括:1)未捕获的异常未向上抛出;2)异步方法导致事务上下文丢失;3)受检异常未配置回滚;4)自调用绕过事务代理;5)数据库引擎不支持事务;6)代码中手动设置了回滚。需检查异常处理方式、事务传播机制及数据库配置,确保事务注解正确生效。
2025-07-28 10:43:09
404
原创 DK21虚拟线程兼容性问题大揭秘!开发者必看
摘要: JDK 21的虚拟线程(Virtual Threads)在I/O密集型任务中表现优异,但与synchronized的兼容性问题可能导致性能下降甚至死锁。问题根源在于虚拟线程执行synchronized代码块时会固定到平台线程,阻塞资源。常见表现包括性能退化(如同步集合类并发受限)和诊断困难(如-Djdk.tracePinnedThreads可能引发Bug)。 解决方案: 替换为ReentrantLock:避免线程固定; 使用无锁集合(如ConcurrentHashMap、CopyOnWriteArr
2025-07-15 13:46:41
884
原创 JDK 17 升级指南:性能提升30%的秘诀,现在上车还不晚!
升级 JDK 17 不仅是获取性能增益(GC 优化、低延迟)和安全加固(TLSv1.3、漏洞修复)的关键举措,更通过语言特性(密封类、记录类)和工具链改进大幅提升开发效率。作为长期支持版本,它为企业级应用提供了稳定的技术基座,同时通过孵化器特性(如外部函数API)为未来技术演进铺路。
2025-06-17 14:01:51
1146
原创 提高 Maven 项目的编译效率
提高 Maven 项目的编译效率可以从多个方面入手,从优化 Maven 配置、利用多核处理器、缓存依赖、并行构建整理总结。这样可以显著提高编译速度,同时减少不必要的任务。
2025-05-23 14:29:41
645
原创 UI-TARS与Midscene.js自动化探索
通过上述方案,可快速构建基于自然语言的 UI 自动化流程,显著降低脚本维护成本。如需进一步优化,建议参考。通过自然语言指令驱动页面交互,UI-TARS 解析指令并生成精准操作(点击、输入、滚动等)。:对于关键断言,可结合传统断言库(如 Jest)提升稳定性。从页面中提取结构化数据,结合 UI-TARS 的。通过自然语言描述预期结果,UI-TARS 结合。能力,支持动态元素识别。:价格监控、数据爬取等。
2025-03-23 20:29:13
1634
原创 使用Spring AI调用Ollama的DeepSeek模型实现结构化输出
接下来,在 Spring Boot 项目中使用 Spring AI 框架与 Ollama 服务进行交互,并实现结构化输出。首先,需要在 Docker 中部署 Ollama 并下载。
2025-02-25 11:08:51
785
原创 在 Docker Swarm 中部署 Spring Boot 应用并区分日志
在Docker Swarm中,如果你创建了一个服务并指定了多个副本(例如通过--replicas参数),那么这些副本可以运行在集群中的任何节点上。如果多个副本恰好运行在同一台服务器上,并且你挂载了相同的日志目录,这确实可能导致日志文件冲突。
2024-11-08 16:12:01
700
原创 使用Spring Boot和Micrometer实现交易度量监控
在现代的微服务架构中,对服务的性能和健康状况进行实时监控变得至关重要。Spring Boot 以其便捷的开发方式而广受欢迎,而 Micrometer 则是用于收集和报告度量信息的强大工具。本文将介绍如何利用 Spring Boot 和 Micrometer 实现对交易过程中的关键度量信息的收集和监控。
2024-10-22 17:07:06
525
原创 Coding.net 堡垒机 Agent 进程消失的诊断与解决方案
通过这次事件,深刻意识到及时监控和自动化运维的重要性。希望本文能够帮助遇到类似问题的技术人员快速定位问题,并采取有效措施恢复服务。由于该进程对于持续部署稳定运行至关重要,需要迅速找出问题的原因并制定相应的解决方案。的状态,并在进程消失时自动重启。进程消失而导致的服务中断,决定编写一个简单的 Shell 脚本来监控。为了防止未来再次发生类似的问题,我们需要进一步调查。在日常运维工作中,遇到了一个突发事件:堡垒机上的。的运行机制,并确保系统配置正确无误。进程不存在,临时措施如下。
2024-09-26 13:50:41
478
原创 记录异常,不存在的方法 void org.springframework.util.Assert.notNull(java.lang.Object)
最终升级swagger相关依赖解决。
2024-09-14 13:57:39
1356
1
原创 SecurityFilterChain相关的配置和示例说明
最近在做技术升级工作,Spring Boot 2.x升级Spring Boot 3.x自然也就涉及到Security(Security5.x升级Security6.x)`SecurityFilterChain`相关的配置和示例说明。
2024-09-11 15:19:28
1464
原创 在Jenkinsfile中,自定义environment相关参数
在Jenkinsfile中,environment定义VER,若BRANCH_NAME是master,则VER为master,其他为latest。2、根据 BRANCH_NAME 设置 VER 为 “master” 或 “latest”。1、设置 CURTIME 为当前的日期时间戳。3、打印出这两个环境变量的值。
2024-08-30 14:52:34
756
1
原创 springboot2.x到springboot3.x的一些变化和示例说明
最近在做微服务版本升级工作,整理springboot2.x到springboot3.x(spring5.x到spring6.x)的一些变化和示例说明。
2024-08-08 18:43:34
908
原创 JDK8优化JVM总结
默认垃圾回收器当前大多数应用仍然使用JDK 1.8,并且默认的年轻代垃圾回收器是Parallel Scavenge。Parallel Scavenge回收器旨在最大化吞吐量,适合对CPU使用率有较高要求的应用场景。默认情况下,Parallel Scavenge回收器启用了AdaptiveSizePolicy,该策略会动态调整Eden区和Survivor区的比例。这种动态调整可能会导致Survivor区变小,使得更多的对象在年轻代的几次垃圾回收之后直接晋升到老年代。潜在问题。
2024-08-07 11:13:02
781
原创 基于角色的访问控制(Role-Based Access Control,简称RBAC)
RBAC的核心思想是“职责分离”和“最小权限原则”,以确保系统的安全性和合规性。
2024-07-21 17:10:34
2053
1
原创 Eclipse Temurin Docker镜像
Eclipse Temurin 在 Docker Hub 上提供了多个版本的 Docker 镜像
2024-07-19 19:03:19
4917
原创 分库分表场景下,如何设计与实现一种高效的分布式ID生成策略
Snowflake算法,由Twitter开源,是一种广泛应用于分布式系统中的ID生成方案。它通过一个64位的ID表示,将时间戳、数据中心ID、机器ID和序列号组合在一起,确保了ID的全局唯一性和趋势递增性。1位符号位,始终为0,表示正数。41位时间戳,精确到毫秒,可以支持大约69年的时间跨度。10位数据中心ID,可以部署在1024个不同的数据中心。10位机器ID,单数据中心可以部署最多1024台机器。12位序列号,每毫秒内可生成4096个ID。
2024-06-06 18:38:01
889
1
原创 Spring Boot进阶 - Actuator监控
如果你需要创建自定义的端点,可以定义一个实现// 返回自定义的数据 return "This is data from a custom endpoint";} }// 返回自定义的数据 return "This is data from a custom endpoint";} }// 返回自定义的数据 return "This is data from a custom endpoint";} }
2024-05-12 08:26:56
1202
原创 Spring Boot进阶 - Starter自定义
自动配置是自定义starter的核心部分,它让Spring Boot根据特定条件(如类路径上的某些类或属性的存在)自动设置bean。通常,在下创建一个新包,比如,并在此包下编写配置类。使用注解标记该类,并可能使用等条件注解来控制自动配置的启用。在目录下创建import org// 更多配置属性... // Getter and Setter }// 更多配置属性... // Getter and Setter }// 更多配置属性... // Getter and Setter }
2024-05-12 08:26:31
1380
原创 Spring Boot应用部署 - JAR包部署瘦身
在日常开发测试环境中,随着业务代码的增加,Maven依赖的jar包也越来越多,导致工程包越来越大。通过阿里云流水线部署时,构建时长逐渐变得不够使用。为了解决这个问题,我们提出了以下瘦身部署方案。
2024-05-12 08:25:50
717
原创 python - pip安装及使用详解
pip是 Python 开发不可或缺的工具,掌握其基本使用方法能极大地提高开发效率。无论是安装、升级、卸载还是查询包,pip都提供了简洁易用的命令行接口。随着 Python 生态系统的不断壮大,熟悉pip的使用将帮助你更好地管理和利用丰富的第三方库资源。
2024-05-12 06:45:00
6006
原创 Spring Boot进阶 - Starter原理
Spring Boot Starter的原理主要是为了简化Spring应用的配置和初始化过程,让开发者能够快速启动并运行应用,而不需要手动配置大量的XML或Java配置类。这些自动配置类定义在各个Starter中,它们包含了对特定场景(如Web服务、数据库访问、安全等)的默认配置。文件是Starter自动配置的关键。通过这种方式,Spring Boot Starter机制大大简化了Spring应用的搭建和配置工作,使得开发者能够更加专注于业务逻辑的实现,而不是基础设施的搭建。文件中声明自动配置类。
2024-05-11 23:42:50
694
原创 Spring Boot进阶 - 实现自动装配原理
Spring Boot的自动装配机制通过、条件注解以及文件的配合,实现了根据应用环境自动配置bean的功能,大大减轻了开发者的手动配置工作,提高了开发效率。开发者只需关注业务逻辑,而大部分基础设施和服务的配置由Spring Boot自动处理。
2024-05-11 23:42:10
752
原创 Spring Boot应用部署 - Tomcat/Jetty/Undertow容器对比和使用场景
在前面的文章中,我们介绍了如何替换Tomcat容器,现总结下Tomcat/Jetty/Undertow容器。
2024-05-08 22:05:21
1632
原创 Spring Boot应用部署 - Tomcat容器替换为Undertow容器
完成以上步骤后,重新构建并运行你的Spring Boot应用,它现在应该使用Undertow作为Web服务器了。更改容器后需要根据Undertow的特点调整一些特定的配置或优化,以确保应用正常运行且性能最优。你还可以通过Spring Boot的配置文件(通常是。依赖中排除Tomcat。
2024-05-08 21:58:54
1648
原创 Spring Boot应用部署 - Tomcat容器替换为Jetty容器
完成上述修改后,确保重新构建你的项目,以便Maven下载新的依赖并更新你的应用配置。由于实际日志内容会根据你的具体环境(如Spring Boot版本、Jetty版本、具体应用配置等)有所不同,我将提供一个简化的示例来说明Spring Boot应用使用Jetty启动时可能出现的日志输出。这段示例日志展示了Spring Boot应用启动的几个关键步骤,包括Spring Boot的启动信息、Jetty服务器的初始化、以及最终的成功启动消息,包括绑定的端口(在这个例子中是8080)。中添加Jetty的起步依赖。
2024-05-05 18:04:36
1571
原创 Docker中的Java基础镜像OpenJDK和OracleJDK
Docker中的Java基础镜像主要围绕OpenJDK和Oracle JDK两个主流的Java开发环境,提供了多个版本以适应不同的项目需求。
2024-04-30 17:14:38
10345
2
原创 yarn安装和使用
Yarn是Facebook在2016年推出的一个新的JavaScript包管理器,它解决了npm(Node.js的默认包管理器)存在的一些问题,如安装速度慢、依赖管理复杂等。Yarn提供了更快、更可靠、更安全的包管理体验。下面是如何安装和使用Yarn的基本步骤。
2024-04-30 11:18:07
781
原创 Spring Boot应用部署 - WAR包部署
如果您正在运行Tomcat服务,它会自动检测到新部署的WAR文件并进行解压及部署。如果您尚未启动Tomcat,启动后它同样会处理新部署的WAR文件。将Spring Boot应用部署为WAR包并部署到外部Tomcat服务器上,需要进行一些特定的配置和步骤。为了防止与外部Tomcat服务器产生冲突,需要在构建配置中排除Spring Boot的内嵌Tomcat依赖。按照以上步骤,就能成功将Spring Boot应用打包成WAR文件并部署到Tomcat服务器上了。将生成的WAR文件复制到Tomcat的。
2024-04-28 10:41:03
1402
2
原创 Spring Boot应用部署 - JAR包Docker部署
要使用Docker部署Spring Boot应用,需要创建一个Dockerfile来定义如何构建Docker镜像,并且可能还需要在Maven构建脚本中集成Docker插件以简化构建过程。
2024-04-28 10:33:43
1689
原创 Spring Boot应用部署 - JAR包部署
Spring Boot应用部署采用打包成JAR文件的方式,旨在利用其内置的嵌入式Tomcat或其他Servlet容器,简化传统Web应用部署流程。
2024-04-27 18:37:33
1322
Ibatis开发实例
2012-04-17
Spring_Security-3.0.1_中文官方文档
2012-04-17
neatdm1.4.10
2023-06-09
在LINUX下安装JDK1.6
2012-04-17
FreeMarke实例代码
2012-04-17
代码统计工具
2012-04-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅