在 Spring 中使用 DeferredResult 实现长轮询
<h2>1、概览 {#1概览}</h2> <p>长轮询(Long polling)通常用于在 B/S 架构的应用中保持客户端和服务器的连接,直到信息可用。通常在服务器必须调用下游服务以获取信息并等待结果时使用。</p> <p>本文将带你了解如何在 Spring MVC 应用中使用 <a href="ht...
51工具盒子
<h2>1、概览 {#1概览}</h2> <p>长轮询(Long polling)通常用于在 B/S 架构的应用中保持客户端和服务器的连接,直到信息可用。通常在服务器必须调用下游服务以获取信息并等待结果时使用。</p> <p>本文将带你了解如何在 Spring MVC 应用中使用 <a href="ht...
响应压缩是 Web 应用一种常见的优化手段,通过压缩算法减小传输数据的体积,提高传输效率、节约带宽。客户端接收到数据后,使用相同的算法对数据进行解压从而获取到原始数据。 客户端和服务器需要通过 Header 来协商双方支持的压缩算法。 * `Accept-Encoding`:请求头,告诉服务器客户端支持的压缩算法(多个使用逗号分割)。例如:`Accept-Encoding:...
<p>本文将带你了解如何使用 <a href="/spring-boot/">Spring Boot</a> 和 Open Telemetry 为 Kafka 生产者和消费者配置追踪功能。我们会使用 Micrometer 库发送追踪信息,并使用Jaeger来存储和可视化这些数据。Spring Kafka内置了与 Micro...
<h2>Spring Framework 6.1 中的新变化 {#spring-framework-61-中的新变化}</h2> <h3>核心容器 {#核心容器}</h3> <ul> <li>总体上 <a href="https://github.com/spring-projects/sp...
1、概览 {#1概览} ----------- 在 Spring 集成测试中,我们可能想要覆盖应用的一些 Bean。通常,可以使用专门为测试定义的 Spring Bean 来实现。然而,在 Spring Context 中提供多个具有相同名称的 Bean,可能会遇到 `BeanDefinitionOverrideException` 异常。 本文将带你了解如何在 Sprin...
<h2>1、概览 {#1概览}</h2> <p>本文将带你了解如何在 <a href="/spring/">Spring</a> 应用中使用 Thymeleaf 模板来渲染错误信息。</p> <p>我们会通过一个简单的 Spring Boot 项目来进行演示,该项目是一个 &...
一、读写分离介绍 {#一读写分离介绍} ------------------- 当使用Spring Boot开发数据库应用时,读写分离是一种常见的优化策略。读写分离将读操作和写操作分别分配给不同的数据库实例,以提高系统的吞吐量和性能。 读写分离实现主要是通过动态数据源功能实现的,动态数据源是一种通过在运行时动态切换数据库连接的机制。它允许应用程序根据不同的条件或配置选择不同...
1、概览 {#1概览} ----------- 当有多个相同类型的实现时,需要对 Spring Bean 进行不同的命名。这是因为如果 Bean 没有唯一的名称,Spring 在注入 Bean 时会出现歧义。 通过控制 Bean 的命名,可以告诉 Spring 我们想将哪个 Bean 注入到目标对象中。 本文将带你了解 Spring Bean 命名策略,以及如何为同一类型...
1、概览 {#1概览} ----------- 安全通信在现代应用中发挥着重要作用。客户端和服务器之间通过普通 HTTP 进行的通信并不安全。对于生产级的应用,应该在应用中通过 TLS(传输层安全)协议启用 HTTPS。 本文将带你了解如何在 [Spring Boot](/spring-boot/) 应用中启用 TLS。 2、TLS 协议 {#2tls-协议} -----...
<h2>什么是精度丢失? {#什么是精度丢失}</h2> <p>Java 中长整形 <code>Long</code> (64位)的取值范围是:<code>-9223372036854775808</code> - <code>9223372036854775807</code...