摘要: AI Agent 可以调用删除文件、发送邮件、修改订单等工具,但如何确保高风险操作经过用户批准?本文结合 Spring AI 2.1 的 Tool Call Confirmation 机制,介绍工具调用暂停、人工审批、决策恢复及权限校验的实现思路。进一步分析客户端参数篡改、重复执行、审批超时和服务重启等实际问题,并给出数据库审批记录、业务幂等及安全测试建议,帮助 Java 开发者构建更可靠的 AI Agent。 阅读全文
posted @ 2026-11-05 08:55 杨凯凡 阅读(8) 评论(0) 推荐(0)
摘要: Spring Boot 项目部署多个实例后,为什么同一个 @Scheduled 定时任务会重复执行?本文从 Spring 调度机制入手,分析 fixedRate、fixedDelay、Cron 的区别,以及多实例部署、重复注册和业务重试导致的重复执行问题。结合 MySQL 条件更新、任务认领、分布式锁和幂等设计,介绍如何避免订单重复处理,并通过故障测试思路帮助开发者建立可靠的定时任务体系。 阅读全文
posted @ 2026-11-05 08:47 杨凯凡 阅读(12) 评论(0) 推荐(0)
摘要: Spring Boot 4 默认使用 Jackson 3,给 Java 项目的 JSON 序列化和反序列化带来了新的迁移挑战。本文结合 Spring 官方升级指南,详细分析 Jackson 2 与 Jackson 3 的包名、依赖、API 和默认行为差异,介绍 JsonMapper 改造、配置迁移、兼容模式及 JSON 契约测试方法,并提供生产项目的渐进式升级建议,帮助开发者降低 Spring Boot 4 升级风险。 阅读全文
posted @ 2026-11-05 08:40 杨凯凡 阅读(158) 评论(0) 推荐(0)
摘要: Spring Boot 项目中,为什么数据库更新成功后,接口仍然返回旧数据?本文从 Spring Cache 的工作机制入手,结合 @Cacheable、`@CacheEvict`、Caffeine 和事务同步回调,分析缓存失效时机、事务提交顺序及并发回填等常见问题,并提供代码示例、解决方案和测试思路,帮助开发者设计更可靠的缓存更新机制。 阅读全文
posted @ 2026-11-05 08:39 杨凯凡 阅读(9) 评论(0) 推荐(0)
摘要: Spring AI 2.1.0-RC1 与 2.0.2 同时发布,Java 开发者该选择哪个版本?本文结合 Spring 官方发布说明,解析 Session Memory、工具调用确认、Message Parts 和向量检索的新变化,并通过代码示例介绍这些能力如何应用于 AI Agent 开发。同时对比稳定版与候选版的差异,提供现有 Spring AI 项目的升级建议与检查清单。 阅读全文
posted @ 2026-11-04 08:58 杨凯凡 阅读(22) 评论(0) 推荐(0)
摘要: Spring Boot 开发中,明明添加了 @Transactional,为什么异常发生后数据还是提交了?本文从 Spring 事务代理机制入手,通过 Spring JDBC、H2 和 JUnit 构建可复现的案例,系统分析同类方法调用、异常回滚规则、异常捕获、异步线程、事务传播行为以及多数据源等常见问题,并提供事务日志配置和排查清单,帮助开发者真正理解事务边界,快速定位事务不生效的原因。 阅读全文
posted @ 2026-11-04 08:55 杨凯凡 阅读(168) 评论(1) 推荐(4)
摘要: 本文从「服务端主动推送」的需求出发,对比短轮询、长轮询、SSE 与 WebSocket 四种方案的适用边界;讲清 WebSocket 的握手升级过程(与【001】的 101 衔接)、帧协议直觉、心跳与断线重连;重点梳理 WebSocket 下的鉴权难题——HTTP Header 在升级后消失、Token 怎么传、session 与连接的生命周期差异、Spring Boot 中 `WebSocketHandler` 与 STOMP 两条路线的取舍;覆盖 Nginx 反代 WebSocket 的配置要点、多实例下的广播问题(Redis Pub/Sub 思路)、前端 `new WebSocket()` 与 `SockJS` 的选择。本篇偏概念与决策,代码以「能跑通最小示例」为度,深入实现留给 P3/P9 对应篇目。 阅读全文
posted @ 2026-04-21 14:03 杨凯凡 阅读(141) 评论(0) 推荐(0)
摘要: 本文把【001】里点到的 REST 路径习惯展开为可落地的工程实践,面向 Spring Boot 3.x 项目:从「资源」的识别与 URL 设计、Controller 的职责边界与分层、请求/响应 DTO 的拆分策略、分页排序过滤的统一约定、错误响应契约与 `@ControllerAdvice`、到版本化与前后端接口文档的对齐。附可复制的包结构样板与 OpenAPI 注解示例,帮你在项目初期就把「接口长什么样」定下来,减少联调时反复扯皮的成本。 阅读全文
posted @ 2026-04-21 14:02 杨凯凡 阅读(82) 评论(0) 推荐(0)
摘要: 本文从 DNS 解析过程写起,面向 Spring Boot 后端与微服务联调:讲清域名层级结构、递归与迭代查询、TTL 缓存在 JVM 与 OS 层的表现、`/etc/hosts` 与 `resolve.conf` 的优先级;串联 Nacos/K8s Service DNS 等微服务内部域名解析、Spring Boot 中 `UnknownHostException` 的排查路径、CDN 与 CNAME 的工程直觉;覆盖小程序合法域名的备案与 HTTPS 要求、域名切换时 TTL 踩坑、多环境域名管理策略。附 `nslookup`、`dig`、`curl --resolve` 等可复制命令,帮你在「域名解析不了」「切了 DNS 还是打到旧 IP」「小程序域名校验不过」时快速定位。 阅读全文
posted @ 2026-04-19 17:35 杨凯凡 阅读(118) 评论(0) 推荐(0)
摘要: 本文从 TCP/IP 四层模型写起,面向 Spring Boot 后端与联调排障:讲清分层各层职责与数据封装、TCP 三次握手与四次挥手的工程直觉、滑动窗口与拥塞控制对吞吐的影响;重点串联「超时」在各层的表现——connect timeout、read/socket timeout、网关 proxy timeout、Hikari 连接池超时、Feign/RestClient 超时,以及 Tomcat 线程池耗尽时的外在症状。附 `netstat`/`ss`、`curl` 计时、Spring Boot 配置对照与典型事故场景,帮你在「接口慢」「接口断」时快速定位到正确的层。 阅读全文
posted @ 2026-04-19 17:34 杨凯凡 阅读(106) 评论(0) 推荐(0)