Spring 中的 @Scheduled 注解
1、概览 {#1概览} ----------- 本文将带你了解如何使用 Spring `@Scheduled` 注解来配置和调度定时任务。 使用 `@Scheduled` 对方法进行注解时,需要遵循如下简单的规则: * 方法的返回类型通常应为 `void`(如果不是,返回值将被忽略) * 方法不应有任何参数 2、启用定时调度 {#2启用定时调度} -----------...
1、概览 {#1概览} ----------- 本文将带你了解如何使用 Spring `@Scheduled` 注解来配置和调度定时任务。 使用 `@Scheduled` 对方法进行注解时,需要遵循如下简单的规则: * 方法的返回类型通常应为 `void`(如果不是,返回值将被忽略) * 方法不应有任何参数 2、启用定时调度 {#2启用定时调度} -----------...
1、概览 {#1概览} ----------- 本文将地带你了解如何在 [Spring](/spring/) 中为 REST API 实现异常处理。 在 Spring 3.2 之前,在 Spring MVC 应用中处理异常的两种主要方法是 `HandlerExceptionResolver` 或 `@ExceptionHandler` 注解。这两种方法都有一些明显的缺点。 ...
1、概览 {#1概览} ----------- 本文介绍了如何在 [Spring Security](/spring-security/) 中检索当前用户详细信息。 2、从 Bean 中获取用户 {#2从-bean-中获取用户} ------------------------------- 检索当前已通过身份认证用户(`Principal`)的最简单方式是调用 `Sec...
完整的请求日志对于 **故障排查** 和 **审计** 来说极其重要。通过查看日志,可以检查数据的准确性、参数的传递方式以及服务器返回的数据。 由于 Socket 流不能重读,所以需要一种实现来把读取和写入的数据缓存起来,并且可以多次重复读取缓存的内容。 Spring 提供 2 个可重复读取请求、响应的 Wrapper 工具类: * `ContentCachingRequ...
1、概览 {#1概览} ----------- 本文将带你了解 [Spring Boot](/spring-boot/) 应用中的日志配置。 2、初始设置 {#2初始设置} --------------- 通过 [Spring Initializr](https://start.springboot.io/) 初始化一个 Spring Boot 应用: 创建唯一的类 `...
1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring Boot](/spring-boot/) 中使用 H2 内存数据库。与其他数据库一样,Spring Boot 生态系统对 H2 提供了开箱即用的支持。 2、依赖 {#2依赖} ----------- 添加 [h2](https://mvnrepository.com/artifact/c...
1、概览 {#1概览} ----------- 本文将带你了解如何在 UI (前端)应用中使用 Zuul 作为代理与 Spring REST 服务通信,使用 Zuul 代理的目的是为了统一处理 **CORS** 和 **Same Origin Policy** 问题。 Zuul 是 Netflix 基于 JVM 的路由和服务器端负载均衡器。Spring Cloud 与嵌入式...
1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring](/spring/) 中重新加载 Properties 配置属性。 2、Spring 读取 Properties {#2spring-读取-properties} ----------------------------------------------- Spring 有几种不同的方...
1、概览 {#1概览} ----------- 本文将带你了解 Spring Boot 应用中的声明式 REST 客户端 - [**Spring Cloud OpenFeign**](/spring-cloud-openfeign)。 Feign 通过可插拔的注解支持(包括 Feign 注解和 JAX-RS 注解)使编写 Web 客户端更加容易。 此外,Spring Cl...
1、概览 {#1概览} ----------- 本文将带你了解使用 [Spring Data JPA](/spring-data-jpa/) 获取最后一条记录的多种方式。 2、初始设置 {#2初始设置} --------------- 首先,创建并初始化要查询的表。 创建一个 `Post` 实体类: ```java @Entity public class Pos...