Java设计模式:Business Delegate

本文主要介绍 Business Delegate 业务委托模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 业务委托模式(Business Delegate Pattern)在表示层和业务层之间引入了一个抽象层,旨在实现这两个层之间的松散耦合,并封装了有关如何定位、连接和交互业务对象的逻辑。 ...

2023-09-05 · 4 min · 1738 words · chensoul

Java设计模式:Bridge

本文主要介绍 Bridge 桥接模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象与其实现分离,使它们可以独立地变化。桥接模式通过创建两个独立的层次结构,一个是抽象部分,一个是实现部分,来实现这种分离。 ...

2023-08-28 · 9 min · 4127 words · chensoul

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

1. 概述 在本教程中,我们将讨论如何为 Spring REST API 实现全局错误处理程序。 我们将使用每个异常的语义为客户端构建有意义的错误消息,其明确的目标是为客户端提供所有信息以轻松诊断问题。 2. 自定义错误消息 让我们首先实现一个用于通过线路发送错误的简单结构 — ApiError: ...

2023-08-25 · 4 min · 1964 words · chensoul

[译]Spring Events

1. 概述 在本教程中,我们将讨论如何在 Spring 中使用事件。 事件是框架中最容易被忽视的功能之一,但也是最有用的功能之一。与 Spring 中的许多其他功能一样,事件发布是 ApplicationContext 提供的功能之一。 有一些简单的准则需要遵循: 如果我们使用 Spring Framework 4.2 之前的版本,事件类应该扩展 ApplicationEvent。从 4.2 版本开始,事件类不再需要扩展 ApplicationEvent 类。 发布者应该注入一个 ApplicationEventPublisher 对象。 监听器应该实现 ApplicationListener 接口。 2. 自定义事件 Spring 允许我们创建和发布默认情况下同步的自定义事件。这有一些优点,例如侦听器能够参与发布者的事务上下文。 ...

2023-08-25 · 5 min · 2488 words · chensoul

[译]使用@Async进行Spring Security上下文传播

1. 简介 在本教程中,我们将重点关注使用 @Async 传播 Spring Security 主体 默认情况下,Spring Security 身份验证绑定到 ThreadLocal - 因此,当执行流在带有 @Async 的新线程中运行时,它不会是经过身份验证的上下文。 这并不理想——让我们解决它。 2.Maven 依赖 为了在 Spring Security 中使用异步集成,我们需要在 pom.xml 的依赖项中包含以下部分: ...

2023-08-25 · 3 min · 1134 words · chensoul

[译]使用Spring进行REST的错误处理

1. 概述 本教程将说明如何使用 Spring 为 REST API 实现异常处理。我们还将获得一些历史概述,并了解不同版本引入了哪些新选项。 在 Spring 3.2 之前,Spring MVC 应用程序中处理异常的两种主要方法是 HandlerExceptionResolver 或 @ExceptionHandler 注解。两者都有一些明显的缺点。 从 3.2 开始,我们使用了 @ControllerAdvice 注释来解决前两个解决方案的局限性,并促进整个应用程序的统一异常处理。 ...

2023-08-25 · 8 min · 3554 words · chensoul

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

1. 概述 在本教程中,我们将探讨 Spring 中的异步执行支持和 @Async 注解。 简单地说,用 @Async 注解 bean 的方法将使其在单独的线程中执行。换句话说,调用者不会等待被调用方法的完成。 Spring 的一个有趣的方面是,框架中的事件支持还 支持异步处理(如果需要)。 2.启用异步支持 让我们首先通过 Java 注解启用异步处理。 ...

2023-08-25 · 3 min · 1444 words · chensoul

Java设计模式:Balking

本文主要介绍 Balking 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 止步模式(Balking)是一种在对象处于特定状态时才执行操作的设计模式。它用于防止对象在不完整或不合适的状态下执行某些代码,从而确保代码的正确性和一致性。 ...

2023-08-25 · 17 min · 8021 words · chensoul

[译]Spring Boot项目如何实现JWT认证?

没有人可以否认这样一个事实:安全性是生产就绪应用程序的一项重要功能。尽管我们可以使用内存身份验证、JDBC 身份验证或通过 UserDetailsS​​ervice 来保护一个 Web 应用程序的安全。但是,当一个应用程序在内部使用其他应用程序的服务时,使用 Web 服务概念实现安全性就变得很重要。在这种情况下,我们使用具有特定有效期的令牌来保护我们的应用程序。此外,我们将学习“如何在 Spring Boot 项目中实现 JWT 身份验证?”以整体了解 JWT(JSON Web Token)身份验证背后的概念。 ...

2023-08-18 · 14 min · 6832 words · chensoul

[译]Spring Boot项目如何实现Security?

如今,几乎每个客户都要求在实时应用程序中实现强大的安全功能。安全功能对于保持机密性、完整性和可用性的需求是非常有效的。现实世界中有很多类型的安全性,但我们作为开发人员将重点关注应用程序/软件安全性。 ...

2023-08-18 · 15 min · 7260 words · chensoul