在 Spring 测试中禁用 @EnableScheduling
1、简介 {#1简介} ----------- 本文将带你了解如何测试启用了定时任务(`@EnableScheduling`)的 Spring 应用,以及如何在测试过程中禁用定时任务。 2、示例 {#2示例} ----------- 首先来看一个示例,假设我们有一个系统,允许公司的代表向客户发送通知。其中一些通知是时间敏感的,应该立即发送,但有些通知应该等到下一个工作日再...
1、简介 {#1简介} ----------- 本文将带你了解如何测试启用了定时任务(`@EnableScheduling`)的 Spring 应用,以及如何在测试过程中禁用定时任务。 2、示例 {#2示例} ----------- 首先来看一个示例,假设我们有一个系统,允许公司的代表向客户发送通知。其中一些通知是时间敏感的,应该立即发送,但有些通知应该等到下一个工作日再...
🐞 Bug 修复 {#-bug-修复} -------------------- * `BindValidationFailureAnalyzer` 使用了错误的 target [#40364](https://github.com/spring-projects/spring-boot/issues/40364) * `Log4j2LoggingSystem` 通过一个永...
1、概览 {#1概览} ----------- 日志记录是任何软件应用的重要组件,用于监控、调试和维护系统的健康状况。在 Spring Boot 生态系统中,Logback 作为默认的日志记录框架,提供了灵活和强大的功能。虽然 Spring Boot 简化了应用的许多方面,但有时仍然需要通过 `logback.xml` 配置文件来配置 **Logback** 以满足特定要求。...
[Spring Security](/spring-security/) 是一个功能强大且可高度定制的安全框架,它提供了一套完整的解决方案,用于保护基于 Spring 的应用。在 Spring Security 中,路径匹配是权限控制的核心部分,它决定了哪些请求可以访问特定的资源。本文将带你详细了解 Spring Security 中的路径匹配策略,并提供相应的代码示例。 在...
1、简介 {#1简介} ----------- 缓存是一种有效的策略,当执行结果在一段已知时间内没有变化时,可以避免重复执行逻辑,从而提高性能。 Spring Boot 提供了 `@Cacheable` 注解,可以在方法上定义该注解,它就会缓存方法的结果。在某些情况下,例如在测试环境中进行测试时,我们可能需要禁用缓存来观察某些修改后的行为。 本文将带你了解如何配置 Spr...
1、简介 {#1简介} ----------- 在应用开发中,执行 "更新或插入" 操作(也称为 "upsert")的需要是很常见的。这个操作涉及将新记录存入数据库表中,如果记录不存在,则插入新记录;如果记录已经存在,则更新现有记录。 本文将带你了解使用 Spring Data JPA 执行 "更新或插入" 操作的...
1、概览 {#1概览} ----------- API 文档在团队开发中极其重要,特别是在 API 接口及其复杂的情况下,良好的 API 文档不仅能提升开发效率,还能显示产品的质量。如果一家公司的 API 文档写得马马虎虎,那么它的 API 也可能写得马马虎虎。 **程序员都讨厌写自己文档和别人不写文档**。 本文将带你了解如何使用 [Spring REST Docs](...
1、简介 {#1简介} ----------- Grafana 实验室受 [Prometheus](https://prometheus.io/) 的启发开发了开源日志聚合系统 **Loki**。该系统的目的是存储日志数据并编制索引,从而方便高效地查询和分析由不同应用和系统生成的日志。 本文将带你了解如何在 Spring Boot 中使用 Loki 收集和汇总日志,并使用 ...
1、概览 {#1概览} ----------- 使用 [Spring Data JPA](/spring-data-jpa/) 时,应用启动出现异常。大致如下: ```txt org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reques...
虽然 *Spring Security 7.0* 尚未确定发布日期,但是我们还是需要提前做一些准备工作,因为在已知的信息中,在 Spring Security 7.0 中会有一大批大家熟悉的 API 被移除。这些 API 在 [Spring Security 6](/springs-security/) 中已经处于废弃状态,但是还能用,但是到了 Spring Security ...