- 博客(149)
- 资源 (11)
- 收藏
- 关注
原创 Spring Cloud Gateway vs Apache APISIX:统一网关与鉴权方案深度对比
分别部署两个方案的鉴权 Demo(APISIX 用 Dashboard,SCG 用 Starter)—— 避免将 RBAC/ABAC 等复杂权限逻辑全部前置到网关,防止安全纵深失效。3️⃣ 从小流量业务试点,避免“技术理想主义”导致落地风险。多语言/Go/Python/Node.js 混合架构。纯 Java/Spring Cloud 微服务。纯 Java 后端团队,无网关运维经验。熟悉 Nginx/Lua/etcd。自研 JWT 体系,逻辑需深度定制。需毫秒级动态配置/高频路由变更。
2026-03-19 17:20:42
487
原创 多模态RAG系统设计与知识图谱融合优化:构建下一代智能问答与生成系统
多模态RAG系统设计与知识图谱融合优化,是当前RAG技术发展的重要方向。通过将文本、图像、视频等多模态信息深度集成到RAG系统中,我们突破了传统文本RAG的局限,能够从更广阔的维度理解和获取知识。同时,知识图谱的引入,为RAG系统注入了强大的结构化知识和推理能力,有效缓解了LLM的幻觉问题,提升了检索精度,并为解决知识时效性提供了新的思路。
2026-03-15 21:02:34
430
原创 Spring Cloud Alibaba微服务架构的流量治理、熔断限流与安全策略深度实践
实现统一的日志记录、鉴权等。@Component@Order(-1) // 优先级,数字越小优先级越高@Override// 这里可以进行鉴权逻辑,例如检查JWT// ... JWT解析与验证}));Spring Cloud Alibaba提供了一套全面而强大的微服务治理解决方案。通过深度实践Sentinel的流量治理、熔断降级功能,我们可以构建具有自我保护能力的弹性系统;
2026-02-26 16:39:27
320
原创 幽灵 GDP 时代的幸存者:一份来自 2026 年的开发者突围协议
Citrini 报告指出:“机器不消费,机器生活在云端。” 纯软件(SaaS)的护城河已经干涸,但物理世界依然充满了摩擦力,这是 AI 的禁区。不要被那份报告吓倒。哪怕在 2026 年,世界依然需要构建者。只是,构建的方式变了。我们不再是砌砖的泥瓦匠,我们是设计蓝图并监督机器人施工的建筑师。活下来,保持对“物理世界”的触觉,握紧手中的“私有数据”和“最终签字权”。如果 2028 年的智能危机真的到来,那将是旧秩序的崩塌,也是新物种的狂欢。—— 祝好,来自 2026 的同行。
2026-02-26 13:32:04
374
原创 微服务架构下的 API 网关与服务网格:Spring Cloud Gateway 与 Istio 深度整合实践
将 Spring Cloud Gateway 与 Istio 整合,并非简单的叠加,而是优势互补。守住业务边界,负责复杂的身份识别、参数校验和业务降级,充当“智能的大脑”。Istio夯实基础设施,负责稳定的流量传输、加密和细粒度的灰度控制,充当“强健的四肢”。核心收益业务解耦:开发者只需关注业务逻辑,无需在代码中引入 Hystrix/Resilience4j 等库。平滑演进:可以在不改动代码的情况下,实现从虚拟机到容器,从单版本到多版本灰度的平滑过渡。深度观测。
2026-02-07 20:21:34
539
原创 研发经理血泪感悟:90%的项目失控,都死在“范围没守住”
当业务方知道“加需求要付出时间/成本代价”,产品经理知道“需求变更要走流程”,团队才能把精力放在“把该做的事做好”上,而不是陷入无意义的内耗。没有流程的口头需求,哪怕是老板提的,也要敢于说“先走流程评估影响”——真正的负责人,不会让团队做“拿命来补”的傻事。• 不是不写文档,而是不写冗余文档——用户故事要写清楚,验收标准要量化(比如“支付成功率≥99.9%”,而非“实现支付功能”);见过太多团队,迭代中被各种“小需求”打断,最后核心功能没做完,无关功能堆了一堆,既没满足业务,又累垮了团队。
2026-02-04 17:58:35
50
原创 架构设计之道:深度解析 Spring Boot JPA 中的动态抓取策略 vs 懒加载
懒加载 (Lazy Loading):适合小型管理后台、原型开发或关联深度极浅的场景。它能缩短开发周期,但埋下了生产环境崩溃的伏笔。动态抓取策略 (Dynamic Fetching):适合中大型互联网应用、高并发系统。它将 SQL 执行权从 Hibernate 手中夺回,交还给开发者,虽然增加了初期代码量,但在系统稳定性、可监测性和性能调优上具有压倒性优势。结论:在品牌与多维度统计系统的设计中,应坚持关闭 OSIV,全面推行基于枚举数组的显式动态抓取方案。
2025-12-24 21:05:23
602
原创 构建企业级RAG系统:Java与向量数据库的深度集成与优化实战
Java 开发者在构建 RAG 系统时,拥有成熟的工程生态优势。通过或Spring AI串联 Milvus/Pinecone 等向量基础设施,我们可以快速构建原型。但要达到“企业级”标准,必须深入到数据切分策略、混合检索算法、重排序机制以及本地化推理性能优化的细节中去。RAG 不仅仅是一个 API 的调用链,更是一个对非结构化数据进行深度理解和治理的系统工程。
2025-12-20 19:50:33
827
原创 从 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
1032
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
1182
原创 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
955
原创 Java 25 正式发布:最新LTS版本,开启更简洁、高效、安全的开发新篇章
Java 25作为长期支持版本正式发布,带来多项功能更新和优化。该版本显著简化了基础语法(如Main方法和构造函数体),新增模块一次性导入和原始类型匹配功能。在并发性能方面,引入结构化并发、作用域值等特性,并优化垃圾回收机制和对象头存储。虽然迁移需考虑32位支持移除等注意事项,但这些现代化改进将降低学习门槛,提升开发效率,是了解未来技术趋势的重要参考。
2025-10-29 10:55:58
853
原创 Spring Boot百万级Excel处理解决方案
对于超过500万行的数据集,建议采用分片导出机制,通过多个Excel文件打包为ZIP输出,避免单个文件过大导致的客户端处理问题。该方案已在电商订单导出(单文件120万行)场景验证,在4核8G服务器上平均耗时4.8秒,内存峰值稳定在200MB以内。fastexcel写入。
2025-08-11 16:52:37
1004
原创 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
1212
原创 Spring Boot 事务方法没有异常,为什么事务还是回滚了?
Spring Boot事务方法无异常却回滚的常见原因包括:1)未捕获的异常未向上抛出;2)异步方法导致事务上下文丢失;3)受检异常未配置回滚;4)自调用绕过事务代理;5)数据库引擎不支持事务;6)代码中手动设置了回滚。需检查异常处理方式、事务传播机制及数据库配置,确保事务注解正确生效。
2025-07-28 10:43:09
433
原创 DK21虚拟线程兼容性问题大揭秘!开发者必看
摘要: JDK 21的虚拟线程(Virtual Threads)在I/O密集型任务中表现优异,但与synchronized的兼容性问题可能导致性能下降甚至死锁。问题根源在于虚拟线程执行synchronized代码块时会固定到平台线程,阻塞资源。常见表现包括性能退化(如同步集合类并发受限)和诊断困难(如-Djdk.tracePinnedThreads可能引发Bug)。 解决方案: 替换为ReentrantLock:避免线程固定; 使用无锁集合(如ConcurrentHashMap、CopyOnWriteArr
2025-07-15 13:46:41
1001
原创 JDK 17 升级指南:性能提升30%的秘诀,现在上车还不晚!
升级 JDK 17 不仅是获取性能增益(GC 优化、低延迟)和安全加固(TLSv1.3、漏洞修复)的关键举措,更通过语言特性(密封类、记录类)和工具链改进大幅提升开发效率。作为长期支持版本,它为企业级应用提供了稳定的技术基座,同时通过孵化器特性(如外部函数API)为未来技术演进铺路。
2025-06-17 14:01:51
1203
原创 提高 Maven 项目的编译效率
提高 Maven 项目的编译效率可以从多个方面入手,从优化 Maven 配置、利用多核处理器、缓存依赖、并行构建整理总结。这样可以显著提高编译速度,同时减少不必要的任务。
2025-05-23 14:29:41
696
原创 UI-TARS与Midscene.js自动化探索
通过上述方案,可快速构建基于自然语言的 UI 自动化流程,显著降低脚本维护成本。如需进一步优化,建议参考。通过自然语言指令驱动页面交互,UI-TARS 解析指令并生成精准操作(点击、输入、滚动等)。:对于关键断言,可结合传统断言库(如 Jest)提升稳定性。从页面中提取结构化数据,结合 UI-TARS 的。通过自然语言描述预期结果,UI-TARS 结合。能力,支持动态元素识别。:价格监控、数据爬取等。
2025-03-23 20:29:13
1799
原创 使用Spring AI调用Ollama的DeepSeek模型实现结构化输出
接下来,在 Spring Boot 项目中使用 Spring AI 框架与 Ollama 服务进行交互,并实现结构化输出。首先,需要在 Docker 中部署 Ollama 并下载。
2025-02-25 11:08:51
852
原创 在 Docker Swarm 中部署 Spring Boot 应用并区分日志
在Docker Swarm中,如果你创建了一个服务并指定了多个副本(例如通过--replicas参数),那么这些副本可以运行在集群中的任何节点上。如果多个副本恰好运行在同一台服务器上,并且你挂载了相同的日志目录,这确实可能导致日志文件冲突。
2024-11-08 16:12:01
727
原创 使用Spring Boot和Micrometer实现交易度量监控
在现代的微服务架构中,对服务的性能和健康状况进行实时监控变得至关重要。Spring Boot 以其便捷的开发方式而广受欢迎,而 Micrometer 则是用于收集和报告度量信息的强大工具。本文将介绍如何利用 Spring Boot 和 Micrometer 实现对交易过程中的关键度量信息的收集和监控。
2024-10-22 17:07:06
569
原创 Coding.net 堡垒机 Agent 进程消失的诊断与解决方案
通过这次事件,深刻意识到及时监控和自动化运维的重要性。希望本文能够帮助遇到类似问题的技术人员快速定位问题,并采取有效措施恢复服务。由于该进程对于持续部署稳定运行至关重要,需要迅速找出问题的原因并制定相应的解决方案。的状态,并在进程消失时自动重启。进程消失而导致的服务中断,决定编写一个简单的 Shell 脚本来监控。为了防止未来再次发生类似的问题,我们需要进一步调查。在日常运维工作中,遇到了一个突发事件:堡垒机上的。的运行机制,并确保系统配置正确无误。进程不存在,临时措施如下。
2024-09-26 13:50:41
494
原创 记录异常,不存在的方法 void org.springframework.util.Assert.notNull(java.lang.Object)
最终升级swagger相关依赖解决。
2024-09-14 13:57:39
1408
1
原创 SecurityFilterChain相关的配置和示例说明
最近在做技术升级工作,Spring Boot 2.x升级Spring Boot 3.x自然也就涉及到Security(Security5.x升级Security6.x)`SecurityFilterChain`相关的配置和示例说明。
2024-09-11 15:19:28
1532
原创 在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
791
1
原创 springboot2.x到springboot3.x的一些变化和示例说明
最近在做微服务版本升级工作,整理springboot2.x到springboot3.x(spring5.x到spring6.x)的一些变化和示例说明。
2024-08-08 18:43:34
964
原创 JDK8优化JVM总结
默认垃圾回收器当前大多数应用仍然使用JDK 1.8,并且默认的年轻代垃圾回收器是Parallel Scavenge。Parallel Scavenge回收器旨在最大化吞吐量,适合对CPU使用率有较高要求的应用场景。默认情况下,Parallel Scavenge回收器启用了AdaptiveSizePolicy,该策略会动态调整Eden区和Survivor区的比例。这种动态调整可能会导致Survivor区变小,使得更多的对象在年轻代的几次垃圾回收之后直接晋升到老年代。潜在问题。
2024-08-07 11:13:02
815
原创 基于角色的访问控制(Role-Based Access Control,简称RBAC)
RBAC的核心思想是“职责分离”和“最小权限原则”,以确保系统的安全性和合规性。
2024-07-21 17:10:34
2113
1
原创 Eclipse Temurin Docker镜像
Eclipse Temurin 在 Docker Hub 上提供了多个版本的 Docker 镜像
2024-07-19 19:03:19
5349
原创 分库分表场景下,如何设计与实现一种高效的分布式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
916
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
1225
原创 Spring Boot进阶 - Starter自定义
自动配置是自定义starter的核心部分,它让Spring Boot根据特定条件(如类路径上的某些类或属性的存在)自动设置bean。通常,在下创建一个新包,比如,并在此包下编写配置类。使用注解标记该类,并可能使用等条件注解来控制自动配置的启用。在目录下创建import org// 更多配置属性... // Getter and Setter }// 更多配置属性... // Getter and Setter }// 更多配置属性... // Getter and Setter }
2024-05-12 08:26:31
1389
原创 Spring Boot应用部署 - JAR包部署瘦身
在日常开发测试环境中,随着业务代码的增加,Maven依赖的jar包也越来越多,导致工程包越来越大。通过阿里云流水线部署时,构建时长逐渐变得不够使用。为了解决这个问题,我们提出了以下瘦身部署方案。
2024-05-12 08:25:50
740
原创 python - pip安装及使用详解
pip是 Python 开发不可或缺的工具,掌握其基本使用方法能极大地提高开发效率。无论是安装、升级、卸载还是查询包,pip都提供了简洁易用的命令行接口。随着 Python 生态系统的不断壮大,熟悉pip的使用将帮助你更好地管理和利用丰富的第三方库资源。
2024-05-12 06:45:00
7199
原创 Spring Boot进阶 - Starter原理
Spring Boot Starter的原理主要是为了简化Spring应用的配置和初始化过程,让开发者能够快速启动并运行应用,而不需要手动配置大量的XML或Java配置类。这些自动配置类定义在各个Starter中,它们包含了对特定场景(如Web服务、数据库访问、安全等)的默认配置。文件是Starter自动配置的关键。通过这种方式,Spring Boot Starter机制大大简化了Spring应用的搭建和配置工作,使得开发者能够更加专注于业务逻辑的实现,而不是基础设施的搭建。文件中声明自动配置类。
2024-05-11 23:42:50
713
原创 Spring Boot进阶 - 实现自动装配原理
Spring Boot的自动装配机制通过、条件注解以及文件的配合,实现了根据应用环境自动配置bean的功能,大大减轻了开发者的手动配置工作,提高了开发效率。开发者只需关注业务逻辑,而大部分基础设施和服务的配置由Spring Boot自动处理。
2024-05-11 23:42:10
767
原创 Spring Boot应用部署 - Tomcat/Jetty/Undertow容器对比和使用场景
在前面的文章中,我们介绍了如何替换Tomcat容器,现总结下Tomcat/Jetty/Undertow容器。
2024-05-08 22:05:21
1689
原创 Spring Boot应用部署 - Tomcat容器替换为Undertow容器
完成以上步骤后,重新构建并运行你的Spring Boot应用,它现在应该使用Undertow作为Web服务器了。更改容器后需要根据Undertow的特点调整一些特定的配置或优化,以确保应用正常运行且性能最优。你还可以通过Spring Boot的配置文件(通常是。依赖中排除Tomcat。
2024-05-08 21:58:54
1674
原创 Spring Boot应用部署 - Tomcat容器替换为Jetty容器
完成上述修改后,确保重新构建你的项目,以便Maven下载新的依赖并更新你的应用配置。由于实际日志内容会根据你的具体环境(如Spring Boot版本、Jetty版本、具体应用配置等)有所不同,我将提供一个简化的示例来说明Spring Boot应用使用Jetty启动时可能出现的日志输出。这段示例日志展示了Spring Boot应用启动的几个关键步骤,包括Spring Boot的启动信息、Jetty服务器的初始化、以及最终的成功启动消息,包括绑定的端口(在这个例子中是8080)。中添加Jetty的起步依赖。
2024-05-05 18:04:36
1621
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订阅