Spring Boot

55 篇文章

告别 @MockBean!在 Spring Boot 3.2+ 中使用 @MockitoBean 进行单元测试

2025-06-08 21:38 Spring Spring Boot

多年来,@MockBean 一直被广泛用于 Spring Boot 单元测试中来模拟依赖项。 然而,在 Spring Boot 3.2 中,@MockBean 由于性能和可维护性方面的问题已被标记为废弃。 🔴 @MockBean 存在的问题 ✔ 创建不必要的 Spring 上下文代理 → 拖慢测试执行速度 ✔ 全局模拟 Bean → 可能在多个测试中产生副作用 ✔ 未针对 Spring...

阅读全文

如何在Spring Boot中使用注解动态切换实现

2025-06-07 21:38 Spring Spring Boot

还在用冗长的if-else或switch语句管理多个服务实现? 相信不少Spring Boot开发者都遇到过这样的场景:需要根据不同条件动态选择不同的服务实现。 如果告诉你可以完全摆脱条件判断,让Spring自动选择合适的实现——只需要一个注解,你是否感兴趣? 本文将详细介绍这种优雅的实现方式。 💡 实际开发中的痛点 假设你在开发一个支付系统,需要支持多种支付方式:...

阅读全文

感谢AI,再也不用自己给 Spring Boot 写单元测试了

2025-06-05 21:37 Spring Spring Boot

设想这样一个未来:编写单元测试不再是开发者的负担,AI 能理解你的代码,自动生成全面的测试用例,并在问题演变为 bug 之前就将其发现。这个未来并非遥不可及,它已然成为现实。 !https://miro.medium.com/v2/resize:fit:1200/15tKhwnmZxbLcrUa3bYtlw.jpeg 在 Spring Boot 开发中,JUnit...

阅读全文

Spring Boot + 虚拟线程实现的二维码生成器

2025-06-04 21:37 Spring Spring Boot

随着 Java 21 的发布,虚拟线程(Virtual Threads)成为了正式特性,彻底改变了 Java 的并发编程方式。它们为传统线程提供了更轻量、更易扩展的替代方案,让开发者能够编写出更加简洁高效的并发代码。 虚拟线程 虚拟线程为异步 Java 开发带来了革命性的变化。它们让 JVM 拥有了类似 Go 的并发能力,使高吞吐量应用的代码结构更加简洁、易于维护。如果你正在开发 Web...

阅读全文

Spring Boot 用一个接口搞定所有查询

2025-06-03 21:36 Spring Spring Boot Spring Data

如果你用过 Spring Boot,一定很熟悉“铁三角”:@Controller、@Service 和 @Repository。每加一个实体,通常就会有对应的 Controller 来处理 CRUD 和业务逻辑——至少对于同步操作来说如此。 创建 POST、PUT、DELETE 这些接口很简单:校验、业务逻辑一接,接口就能用了。 但 GET 呢? 来看一个简单的 Employee 实体:...

阅读全文

Spring Boot 3.x 中的 RestClient 使用案例

2025-05-30 21:36 Spring Spring Boot

RestClient 是 Spring Framework 6 引入的一个现代化、流式、类型安全的 HTTP 客户端,在 Spring Boot 3.2+ 中可用。它旨在替代较旧的 RestTemplate,更好地适应现代 HTTP 使用模式,并提供更简洁、直观的 API。 🔍 什么是 RestClient? RestClient 是构建在 Spring 的 WebClient...

阅读全文

升级到 Spring Boot 3.5,我们的云成本减少了 45%

2025-05-29 21:35 Spring Spring Boot

上个季度,我带着越来越焦虑的心情盯着我们公司的 AWS 账单。尽管服务的客户数量基本持平,但我们的云成本在过去一年里持续攀升。作为负责后端基础设施的技术负责人,我必须在下一个预算评审前找到解决方案。 !https://static.didispace.com/images3/b5055ecd75270da24431ee3d0fe82bd2.png 我没想到的是,一次看似例行的 Spring...

阅读全文

Spring Boot的Docker Layer优化:缩小镜像体积并提升启动速度

2025-05-17 21:31 Spring Spring Boot

容器化Spring Boot应用很简单,但低效的Docker镜像会导致部署臃肿、启动缓慢和安全风险。 本文我们将使用多阶段构建、Spring Boot的Layer工具和类数据共享CDS来优化Docker镜像,将体积缩小达60%,启动时间减少30%。 为什么要优化Docker Layer? 更小的镜像:加速CI/CD流程并降低云存储成本 更快的启动:对无服务和自动扩展环境至关重要...

阅读全文

使用Prometheus和Grafana监控Spring Boot应用

2025-05-16 21:30 Spring Spring Boot

在现代云原生应用中,指标数据是系统可观测性的命脉。它们能准确反映应用的健康状态是运行良好还是濒临崩溃。Spring Boot 结合 Prometheus 和 Grafana,构建了一套强大的指标采集、存储与可视化解决方案。 本文将指导您将Spring Boot应用打造成指标生成引擎,并构建令运维团队惊艳的监控仪表盘。 第一步:使用Micrometer和Prometheus导出指标 添加相关依赖...

阅读全文

这些 JVM 参数将 Spring Boot 应用性能提升了 300%

2025-05-14 21:50 Spring Spring Boot

当你的 Spring Boot 应用响应迟缓,且已采用缓存、数据库索引和异步处理优化后,下一个优化方向在哪里?我的答案是 JVM 本身。 经过性能分析和深入研究,我发现合理配置 JVM 参数可以带来显著的性能提升——在负载压力下实现高达 300% 的响应速度提升,且无需修改任何应用代码。 本文将详解: 实际采用的 JVM 参数配置 这些参数生效的原理 优化前后的基准测试对比 安全调优的实施方法...

阅读全文