在 Liberica 运行时容器上运行 Spring Boot 应用
1、简介 {#1简介} ----------- 在本教程中,我们将了解如何把使用 Spring Boot 创建的 Java 应用作为 Docker 容器运行,具体来说,我们将在 Alpaquita Linux 上使用 Liberica JDK 来创建运行我们应用的 Docker 镜像。 Liberica JDK 和 Alpaquita Linux 是 [BellSoft](...
1、简介 {#1简介} ----------- 在本教程中,我们将了解如何把使用 Spring Boot 创建的 Java 应用作为 Docker 容器运行,具体来说,我们将在 Alpaquita Linux 上使用 Liberica JDK 来创建运行我们应用的 Docker 镜像。 Liberica JDK 和 Alpaquita Linux 是 [BellSoft](...
![Spring Cloud Gateway Server MVC](/upload/2023/10/10/xzGGqxeoKS.webp) 网关不支持传统 Servlet 容器 {#网关不支持传统-servlet-容器} ---------------------------------------- [Spring Cloud Gateway](/spring-clou...
安全是一个需要深入理解的复杂主题。此外,使用 [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749) 和 [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html) 规范为基于微服务的复杂系统实现认证和授权更加困难。像 Spring ...
在 "[Spring Security OAuth 2 教程 - 1:熟悉 OAuth 2 概念](/spring-security-oauth2-tutorial-introduction/)" 中,我们学习了如何设置 Keycloak、创建 Realm、启用 Standard flow 的客户端和用户。在本文中,我们将了解如何通过 "授权码模式...
在第二章 "[Spring Security OAuth 2 教程 - 2:授权码模式](/spring-security-oauth2-tutorial-authorization-code-flow/)" 中,我们学习了如何通过授权码模式(Authorization Code Flow)对用户进行身份认证。在本文中,我们将了解如何使用客户端凭证模式(Cl...
在 "[Spring Security OAuth 2 教程 - 3:客户端凭证模式](/spring-security-oauth2-tutorial-client-credentials-flow/)" 中,我们学习了如何通过客户端凭证模式获取访问令牌(**access_token**)。在本文中,我们将了解如何使用 PKCE 授权码模式。 PKCE ...
在 "[Spring Security OAuth 2 教程 - 4:PKCE 授权码模式](/spring-security-oauth2-tutorial-authorization-code-flow-with-pkce/)" 中,我们学习了如何通过 PKCE 授权码模式获取访问令牌(**access_token**)。在本文中,我们将了解如何使用隐式...
在之前的文章中,我们学习了使用 Web 浏览器、cURL 和 Postman 进行各种 OAuth 2.0 / OpenID Connect Flow。现在是时候学以致用了。 在使用像 [Spring Security](/spring-security/) 这样的安全框架实现基于 OAuth 2.0 / OpenID Connect 的 Security 时,许多活动都是由...
1、概览 {#1概览} ----------- Spring Data JPA 中的 *@DynamicInsert* 注解通过在 SQL 语句中只包含非 `null` 字段来优化插入操作。这一过程加快了结果查询的速度,减少了不必要的数据库交互。 虽然它提高了对具有许多可为空字段的实体的效率,但也引入了一些运行时开销。因此,在只有在排除空列的好处超过性能成本的情况下,有选择...
1、概览 {#1概览} ----------- 本文将带你了解 Spring Reactive 中的 [switchIfEmpty()](https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#switchIfEmpty-reactor.core.publisher.Mo...