Spring Security OAuth 2 教程 - 8:资源服务器
在 [上一篇文章](/spring-security-oauth2-tutorial-securing-springmvc-client-application/) 中,我们创建了 `messages-webapp`,并使用 "授权码模式" 通过 Spring Security OAuth 2.0 对其进行了访问控制。在本文中,我们将创建 `messages...
在 [上一篇文章](/spring-security-oauth2-tutorial-securing-springmvc-client-application/) 中,我们创建了 `messages-webapp`,并使用 "授权码模式" 通过 Spring Security OAuth 2.0 对其进行了访问控制。在本文中,我们将创建 `messages...
在前面的文章中,我们创建了 `messages-webapp` 和 `messages-service`,并使用 Postman 调用了 API 端点。在本文中,我们将学习如何从客户端应用 `messages-webapp` 调用受保护的 `messages-service` API 端点。 你可以从 [Github 仓库](https://github.com/sivapr...
在本文中,我们将学习如何使用 "客户端凭证模式"(Client Credentials Flow)实现服务间的通信。我们将创建 `archival-service`,在其中通过定时任务使用 "客户端凭证模式" 来调用 `messages-service` API 以归档消息。 我们还会在 `archival-service` 中实现 `...
本文将教你如何使用 Spring Boot 构建 Modulith,并使用 Spring Modulith 项目的特性。Modulith 是一种软件架构模式,假设将你的单体应用程序组织成逻辑模块。这些模块应尽可能独立于彼此。Modulith 平衡了单体架构和基于微服务的架构。它可以成为组织应用程序的目标模型。但你也可以将其视为从单体架构向基于微服务的方法迁移的过渡阶段。Spri...
[GraphQL](https://graphql.org/) 是一种用于 API 的查询语言和运行时,它允许 API 消费者精确获取所需的信息,而不是服务器完全控制响应内容。某些 REST API 实现需要从多个 URL 加载资源的引用,而 GraphQL API 可以在单个响应中跟踪相关对象之间的引用并返回它们。 本教程逐步演示了如何使用 Spring Boot 和 Sp...
1、概览 {#1概览} ----------- 无论是单元测试还是集成测试,测试对于任何应用程序都至关重要。`SpringRunner` 和 `SpringBootTest` 类是运行集成测试的基础。 在本教程中,我们将了解 `SpringRunner` 和 `@SpringBootTest` 的用法,以及它们之间的区别。 2、SpringRunner {#2spring...
1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring 6](/spring/) 中使用 [RSocket](/spring/web-reactive.html#rsocket)。 随着 Spring 6 引入声明式 RSocket 客户端,使用 RSocket 变得更加简单。这一功能消除了重复的模板代码,使开发人员能够更高效地使用 RSock...
1、概览 {#1概览} ----------- 在本文中,我们将创建一个简单的 Spring 应用,用于连接到 ActiveMQ 并发送和接收消息。我们将重点关注测试这个应用以及测试 Spring JMS 的不同方法。 > [Spring JMS](/spring/integration.html#jms) 是 Spring 框架提供的一个模块,用于支持与 Java 消...
[在 Spring Boot 中使用 Redis](http://localhost:1313/spring-boot-data-redis/) 时,你一定需要过这种需求:更新某个 Redis 的 Value 值,但是不修改它的 TTL(Time To Live),也就是过期时间。 例如:使用 Redis 存储用户的 `Session`,过期时间为半个小时。用户的每次访问,我...
当我们想在 Spring 容器启动或者关闭的时候,做一些初始化操作或者对象销毁操作,我们可以怎么做? 注意我这里说的是容器启动或者关闭的时候,不是某一个 Bean 初始化或者销毁的时候! 1、Lifecycle {#1lifecycle} ------------------------- 对于上面提到的问题,如果你稍微研究过 Spring,应该是了解其里边有一个 `Li...