Spring WebClient 中的 exchange() 和 retrieve() 方法
1、概览 {#1概览} ----------- [`WebClient`](/spring-5-webclient/) 是一个简化 HTTP 请求执行过程的接口。与 `RestTemplate` 不同,它是一个响应式非阻塞客户端,可以消费和操作 HTTP 响应。虽然它被设计为非阻塞型,但也可用于阻塞型场景。 本文将带你了解 `WebClient` 接口中的关键方法,包括 `...
1、概览 {#1概览} ----------- [`WebClient`](/spring-5-webclient/) 是一个简化 HTTP 请求执行过程的接口。与 `RestTemplate` 不同,它是一个响应式非阻塞客户端,可以消费和操作 HTTP 响应。虽然它被设计为非阻塞型,但也可用于阻塞型场景。 本文将带你了解 `WebClient` 接口中的关键方法,包括 `...
1、简介 {#1简介} ----------- *Sequence* (序列)是用于生成唯一 ID 的数字生成器,可避免数据库中出现重复记录。Spring JPA 为大多数情况提供了自动处理序列的方法。不过,在某些特定情况下,我们可能需要在持久化实体之前手动检索下一个序列值。例如,在将订单(`Order`)详细信息保存到数据库之前,需要生成一个唯一的订单号。 本文将带你了解...
本文主要介绍了一种单元测试方法,力求零基础人员可以从本文中受到启发,可以搭建一套好用的单元测试环境,并能切实提高交付代码的质量。极简体现在除了 POM 依赖和单元测试类之外,其他什么都不需要引入,只需要一个本地能启动的 [Spring Boot](/spring-boot/) 项目。 1、POM依赖 {#1pom依赖} ----------------- Springboo...
1、简介 {#1简介} ----------- **H2** 是一个简单的轻量级内存数据库,[Spring Boot](/spring-boot/) 可以自动对其进行配置,使开发人员可以轻松测试数据访问逻辑。 通常情况下,`org.h2.jdbc.JdbcSQLSyntaxErrorException` 是用于表示与 SQL 语法相关的错误的异常。"Table n...
> 科学处理事物的片段和碎片,并假设存在连续性,而艺术则只关注事物的连续性,假设存在片段和碎片。- 罗伯特·M·皮尔西格 LLM(大型语言模型)生成结构化输出的能力对于依赖于可靠解析输出值的下游应用非常重要。开发人员希望将 AI 模型的结果快速转化为数据类型,如 JSON、XML 或 Java 类,以便传递给应用中的其他函数和方法。 Spring AI Structu...
1、概览 {#1概览} ----------- 本文将带你了解如何在 Spring Boot 应用中格式化 JSON `Date` 字段。 [Spring Boot](/spring-boot/) 默认使用 **Jackson** 作为 JSON 的序列化/反序列化框架。 2、在 Date 字段上使用 @JsonFormat {#2在-date-字段上使用-jsonfor...
Spring Security `6.3.0` 正式发布! 6.3 版本带来了几个引人注目的特性,如下: * 长期的 JDK 序列化向后兼容性 * 新的方法安全注解和功能 * 密码受损检查 * 支持 OAuth 2.0 令牌交换 该版本将包含在即将发布的 Spring Boot 3.3 GA 版本中。 ⭐ 新特性 {#-新特性} ------------- * 为 `...
1、概览 {#1概览} ----------- 在软件开发这个要求严苛的领域中,确保应用在在部署到生产环境后能够以最佳性能和可靠性运行是至关重要的。 本文将带你了解如何在 Spring Boot 应该中整合 Prometheus,以及如何通过基本配置和复杂配置丰富我们的监控策略。 2、Prometheus 是什么? {#2prometheus-是什么} ---------...
从 Spring Boot 3.2 进行升级 {#从-spring-boot-32-进行升级} ----------------------------------------------- ### Jersey Observability(可观察性) {#jersey-observability可观察性} Micrometer 1.13 已放弃对 Jersey 的支持,转...
1、概览 {#1概览} ----------- 在使用 [Spring Data JPA](/spring-data-jpa/) 时,我们经常会利用派生和自定义查询,以我们喜欢的格式返回结果。一个典型的例子就是 *DTO* 投影,它提供了一种只 *SELECT* 某些特定列以减少不必要数据开销的好方法。 然而,DTO 投影并不总是那么容易,如果实现不当,可能会导致 `Con...