[译]REST API 的自定义错误消息处理

1. 概述

在本教程中,我们将讨论如何为 Spring REST API 实现全局错误处理程序。

我们将使用每个异常的语义为客户端构建有意义的错误消息,其明确的目标是为客户端提供所有信息以轻松诊断问题。

More »

[译]如何在Spring中执行@Async

1. 概述

在本教程中,我们将探讨 Spring 中的异步执行支持和 @Async 注解。

简单地说,用 @Async 注解 bean 的方法将使其在单独的线程中执行。换句话说,调用者不会等待被调用方法的完成。

More »

[译]为 Spring Boot 应用程序创建优化的 Docker 映像

容器已成为打包具有所有软件和操作系统依赖项的应用程序,然后将其传送到不同环境的首选方式。

本文着眼于容器化 Spring Boot 应用程序的不同方法:

  • 使用 Docker 文件构建 Docker 镜像,
  • 使用 Cloud-Native Buildpack 从源代码构建 OCI 映像,
  • 通过使用分层工具将 JAR 的各个部分拆分为不同的层,在运行时优化映像。

示例代码

本文附有 GitHub 上的工作代码示例。

More »

[译]深入了解Spring事务管理:@Transactional

您可以使用本指南来简单实用地了解 Spring 使用 @Transactional 注释进行事务管理的工作原理。

唯一的先决条件?您需要对 ACID 有一个粗略的了解,即什么是数据库事务以及为什么使用它们。此外,这里不讨论分布式事务或反应式事务,但就 Spring 而言,一般原则仍然适用。

More »

[译]Spring Boot异常处理完整指南

处理异常是构建健壮应用程序的重要部分。 Spring Boot 提供了不止一种方法。

本文将探讨这些方法,并提供一些关于何时某种给定方法可能优于另一种方法的指导。

示例代码

本文附有 GitHub 上的工作代码示例

More »

[译]使用 Spring 的 Null-Safety 注解保护您的代码免受 NullPointerExceptions 的影响

NullPointerExceptions (通常缩写为“NPE”)对于每个 Java 程序员来说都是一场噩梦。

我们可以在互联网上找到大量解释如何编写空安全代码的文章。空安全确保我们在代码中添加了适当的检查,以保证对象引用不能为空,或者毕竟在对象为空时采取可能的安全措施。

由于 NullPointerException 是一个运行时异常,因此在代码编译过程中很难找出这种情况。 Java 的类型系统没有办法快速消除危险的空对象引用。

More »

[译]使用Spring Boot Actuator公开有用的信息端点

在分布式、快节奏的环境中,开发团队通常希望了解他们部署应用程序的时间、部署的应用程序版本、部署的 Git 提交等等。

Spring Boot Actuator 帮助我们监控和管理应用程序。它公开了提供应用程序运行状况、指标和其他相关信息的各种端点。

在本文中,我们将了解如何使用 Spring Boot Actuator 和 Maven/Gradle 构建插件将此类信息添加到我们的项目中。

More »