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

您可以使用本指南来简单实用地了解 Spring 使用 @Transactional 注释进行事务管理的工作原理。 唯一的先决条件?您需要对 ACID 有一个粗略的了解,即什么是数据库事务以及为什么使用它们。此外,这里不讨论分布式事务或反应式事务,但就 Spring 而言,一般原则仍然适用。 ...

2023-08-16 · 14 min · 6953 words · chensoul

Spring Security和OAuth2发展过程

Spring Security 的发展过程 Spring Security 是一个功能强大且广泛使用的安全框架,为企业级应用程序提供了全面的安全性。Spring Security 最初是 Acegi Security 项目的一部分,于 2004 年发布,现在已经成为 Spring 生态系统的核心组件。 Spring Security 的发展过程可以分为三个阶段: ...

2023-08-15 · 12 min · 5855 words · chensoul

《Effective Java 3》笔记17:减少可变性

本文是 《Effective Java 3》第四章《类和接口》的学习笔记:减少可变性。 原文 不可变类是实例不能被修改的类。每个实例中包含的所有信息在对象的生命周期内都是固定的,因此永远不会观察到任何更改。Java 库包含许多不可变的类,包括 String、基本类型的包装类、BigInteger 和 BigDecimal。这么做有很好的理由:不可变类比可变类更容易设计、实现和使用。它们不太容易出错,而且更安全。 ...

2023-08-14 · 15 min · 7157 words · chensoul

Java设计模式:Async Method Invocation

本文主要介绍 Async Method Invocation 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 Async Method Invocation(异步方法调用)是一种编程模式,用于处理异步操作和并发执行。它允许在执行某个操作时不阻塞主线程,而是将操作委托给另一个线程或处理程序,并在操作完成后获取结果或执行回调。 ...

2023-08-14 · 8 min · 3525 words · chensoul

Java设计模式:API Gateway

本文主要介绍 API Gateway 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 目的 API 网关设计模式旨在将所有对微服务的调用聚合到一起。客户端通过调用 API 网关来实现对多个微服务的访问,而不是直接调用每个微服务。这种模式的目的是解决以下问题: ...

2023-08-13 · 5 min · 2100 words · chensoul

Java设计模式:Arrange/Act/Assert

本文主要介绍 Arrange/Act/Assert 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 Arrange/Act/Assert(安排/执行/断言)又称 Given/When/Then,是一种测试设计模式,用于组织和编写单元测试的结构。它提供了一种清晰的测试布局,使得测试代码易于理解和维护。 ...

2023-08-13 · 4 min · 1688 words · chensoul

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

处理异常是构建健壮应用程序的重要部分。 Spring Boot 提供了不止一种方法。 本文将探讨这些方法,并提供一些关于何时某种给定方法可能优于另一种方法的指导。 示例代码 本文附有 GitHub 上的工作代码示例。 介绍 Spring Boot 为我们提供了处理异常的工具,而不仅仅是简单的“try-catch”块。为了使用这些工具,我们应用了一些注释,使我们能够将异常处理视为横切关注点: ...

2023-07-26 · 10 min · 4659 words · chensoul

[译]Spring Boot授权服务器 - 使用 Java 的资源服务器和客户端凭证示例

概述 在本文中,我们将创建一个授权服务器,为任何客户端生成 access_token。这称为 OAuth2 的 client_credentials 流程。它主要用于服务间通信。 我们将使用 spring boot oauth2 授权服务器依赖项来创建身份验证服务器。我们还将创建一个资源服务器和客户端来对其进行端到端测试。 ...

2023-07-26 · 4 min · 1688 words · chensoul

[译]使用 Spring Boot 和 Spring Security 配置 CORS

跨源资源共享 (CORS) 是一种基于 HTTP 标头的机制,允许服务器显式将某些源列入白名单,并帮助绕过同源策略。 这是必需的,因为浏览器默认应用同源策略以确保安全。通过在 Web 应用程序中实施 CORS,网页可以请求额外的资源并从其他域加载到浏览器中。 ...

2023-07-26 · 7 min · 3253 words · chensoul

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

NullPointerExceptions (通常缩写为“NPE”)对于每个 Java 程序员来说都是一场噩梦。 我们可以在互联网上找到大量解释如何编写空安全代码的文章。空安全确保我们在代码中添加了适当的检查,以保证对象引用不能为空,或者毕竟在对象为空时采取可能的安全措施。 ...

2023-07-26 · 5 min · 2162 words · chensoul