51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

spring

Spring Boot + Open Telemetry 实现 Kafka 追踪

Spring Boot + Open Telemetry 实现 Kafka 追踪

厉飞雨 阅读(10) 评论(0) 赞(3)

本文将带你了解如何使用 [Spring Boot](/spring-boot/) 和 Open Telemetry 为 Kafka 生产者和消费者配置追踪功能。我们会使用 Micrometer 库发送追踪信息,并使用Jaeger来存储和可视化这些数据。Spring Kafka内置了与 Micrometer 的集成,用于 `KafkaTemplate` 和监听容器。本文还会介绍何...

Spring Framework 6.1 正式发布

Spring Framework 6.1 正式发布

厉飞雨 阅读(15) 评论(0) 赞(4)

Spring Framework 6.1 中的新变化 {#spring-framework-61-中的新变化} ------------------------------------------------------- ### 核心容器 {#核心容器} * 总体上 [与虚拟线程和 JDK 21 兼容](https://github.com/spring-projects...

在集成测试中覆盖 Spring Bean

在集成测试中覆盖 Spring Bean

厉飞雨 阅读(9) 评论(0) 赞(3)

1、概览 {#1概览} ----------- 在 Spring 集成测试中,我们可能想要覆盖应用的一些 Bean。通常,可以使用专门为测试定义的 Spring Bean 来实现。然而,在 Spring Context 中提供多个具有相同名称的 Bean,可能会遇到 `BeanDefinitionOverrideException` 异常。 本文将带你了解如何在 Sprin...

在 Spring 中使用 Thymeleaf 显示错误信息

在 Spring 中使用 Thymeleaf 显示错误信息

厉飞雨 阅读(7) 评论(0) 赞(3)

1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring](/spring/) 应用中使用 Thymeleaf 模板来渲染错误信息。 我们会通过一个简单的 Spring Boot 项目来进行演示,该项目是一个 "用户注册" 应用,需要验证客户端传递的各个字段,还要处理全局错误。 2、Spring Boot 应用示例 {#2s...

在 Spring Boot 中优雅地实现读写分离

在 Spring Boot 中优雅地实现读写分离

厉飞雨 阅读(10) 评论(0) 赞(2)

一、读写分离介绍 {#一读写分离介绍} ------------------- 当使用Spring Boot开发数据库应用时,读写分离是一种常见的优化策略。读写分离将读操作和写操作分别分配给不同的数据库实例,以提高系统的吞吐量和性能。 读写分离实现主要是通过动态数据源功能实现的,动态数据源是一种通过在运行时动态切换数据库连接的机制。它允许应用程序根据不同的条件或配置选择不同...

Spring Bean 的命名

Spring Bean 的命名

厉飞雨 阅读(13) 评论(0) 赞(4)

1、概览 {#1概览} ----------- 当有多个相同类型的实现时,需要对 Spring Bean 进行不同的命名。这是因为如果 Bean 没有唯一的名称,Spring 在注入 Bean 时会出现歧义。 通过控制 Bean 的命名,可以告诉 Spring 我们想将哪个 Bean 注入到目标对象中。 本文将带你了解 Spring Bean 命名策略,以及如何为同一类型...

Spring Boot 配置 TLS

Spring Boot 配置 TLS

厉飞雨 阅读(11) 评论(0) 赞(3)

1、概览 {#1概览} ----------- 安全通信在现代应用中发挥着重要作用。客户端和服务器之间通过普通 HTTP 进行的通信并不安全。对于生产级的应用,应该在应用中通过 TLS(传输层安全)协议启用 HTTPS。 本文将带你了解如何在 [Spring Boot](/spring-boot/) 应用中启用 TLS。 2、TLS 协议 {#2tls-协议} -----...

Spring Boot 将 JSON 中的 Long 值序列化为 String 避免精度丢失

Spring Boot 将 JSON 中的 Long 值序列化为 String 避免精度丢失

厉飞雨 阅读(15) 评论(0) 赞(1)

什么是精度丢失? {#什么是精度丢失} ------------------- Java 中长整形 `Long` (64位)的取值范围是:`-9223372036854775808` - `9223372036854775807`。 在这种情况下,由于 JavaScript 的 `Number` 类型是 64 位浮点数,它无法精确表示超过 53 位的整数。因此,当将 Jav...

把 Spring Bean 设置为 Null

把 Spring Bean 设置为 Null

厉飞雨 阅读(18) 评论(0) 赞(2)

1、概览 {#1概览} ----------- 本文将带你了解如何把 Spring Context 中的 Bean 设置为 null。在某些情况下,这可能很有用。例如,在测试时不想提供 Mock 对象。以及,在使用一些可选功能时,可能希望避免创建实现,并直接传递 null。 2、组件设置 {#2组件设置} --------------- 有几种方法可以将 Bean 设置为...

Spring Boot Actuator 中的端点管理

Spring Boot Actuator 中的端点管理

厉飞雨 阅读(10) 评论(0) 赞(3)

1、概览 {#1概览} ----------- 本文将带你了解如何通过 properties 文件控制 Spring Boot Actuator 端点的状态,以及如何保证端点的安全。 2、设置 {#2设置} ----------- 为了使用 Actuator,需要在 Maven 配置中包含 [`spring-boot-starter-actuator`](https://...