使用 Spring Security 通过 Header 认证服务之间的调用
1、概览 {#1概览} ----------- 身份认证是微服务安全的基础。我们可以通过各种方式实现身份认证,如使用基于用户的凭证、证书或 token。 在本教程中,我们将学习如何使用 Spring Security 实现服务间的通信认证。 2、自定义身份认证简介 {#2自定义身份认证简介} ------------------------- 在某些情况下,使用 Oau...
1、概览 {#1概览} ----------- 身份认证是微服务安全的基础。我们可以通过各种方式实现身份认证,如使用基于用户的凭证、证书或 token。 在本教程中,我们将学习如何使用 Spring Security 实现服务间的通信认证。 2、自定义身份认证简介 {#2自定义身份认证简介} ------------------------- 在某些情况下,使用 Oau...
1、概览 {#1概览} ----------- 在 Spring Boot 中使用 h2 作为内存数据库的时候遇到异常:org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement expected "identifier"。 本文将会介绍出现 org.h2.jdbc.Jdb...
1、概览 {#1概览} ----------- 自注入是指 Spring Bean 将自身作为依赖注入。它使用 Spring 容器获取自身的引用,然后使用该引用执行某些操作。 在这个简短的教程中,我们将了解如何在 Spring 中使用自注入。 2、自注入的场景 {#2自注入的场景} ------------------- 自注入最常见的用例是在需要将切面应用于自引用的方...
1、概览 {#1概览} ----------- [Spring Boot CLI](/spring-boot/cli.html) 是一个 Spring Boot 工具,用于从命令运行和测试 Spring Boot 应用。该工具提供了一个非常有用的密码编码功能,主要目的是避免暴露明文形式的密码。 在本教程中,我们将深入 Spring Security 的世界,学习如何使用 S...
1、简介 {#1简介} ----------- 模块化单体(Modular Monolith)是一种架构风格,在这种风格中,我们的源代码按照模块的概念进行结构化。对于许多组织来说,模块化单体是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要时过渡到微服务架构。 [Spring Modulith](https://spring.io/projects/spri...
在 Spring 应用中,无论使用 [`JdbcTemplate`](/spring-boot-jdbctemplate-tutorial/) 还是 JPA/Hibernate 或 Spring Data JPA,都需要处理数据库事务。 数据库事务是一个事务单元,它要么全部完成,要么都不完成,并使数据库处于一致状态。在实现数据库事务时,需要考虑到 ACID(原子性、一致性、隔...
1、简介 {#1简介} ----------- 在这个简短的教程中,我们将了解如何在 Spring Boot 中使用虚拟线程(Virtual Threads)。 虚拟线程是 Java 19 的 [预览特性](https://openjdk.org/jeps/425),这意味着它们将在未来 12 个月内被纳入 JDK 的正式版本中。虚拟线程最初是由 Loom 项目引入的,在 ...
1、概览 {#1概览} ----------- 在本教程中,我们将学习如何在 Spring Boot 中调用 OpenAI ChatGPT API。我们将创建一个 Spring Boot 应用程序,通过调用 OpenAI ChatGPT API 来生成对提示的回复。 2、OpenAI ChatGPT API {#2openai-chatgpt-api} ----------...
WebP 是一种现代的图像格式,由 Google 开发。它采用了无损和有损的压缩算法,可以显著减小图像文件的大小,同时保持较高的视觉质量。WebP 图像通常比 JPEG 和 PNG 格式的图像更小,并且具有更快的加载速度,这对于 Web 应用程序和网页的性能优化非常有益。此外,WebP 还支持透明度和动画,使其成为一个多功能的图像格式。它已经得到了广泛的支持,包括主流的 Web...
1、概览 {#1概览} ----------- 在任何现代浏览器中,随着通过 REST API 获取数据的 HTML5 和 JS 客户端的出现,跨源资源共享 (CORS) 已成为一种相关规范。 通常,提供 JS 的主机(如 `example.com`)与提供数据的主机(如 `api.example.com`)不同。在这种情况下,CORS 可以实现跨域通信。 Spring ...