Spring 中的 “自注入”
<h2>1、概览 {#1概览}</h2> <p>自注入是指 Spring Bean 将自身作为依赖注入。它使用 Spring 容器获取自身的引用,然后使用该引用执行某些操作。</p> <p>在这个简短的教程中,我们将了解如何在 Spring 中使用自注入。</p> <h2>2、自注入的场景 {#...
51工具盒子
<h2>1、概览 {#1概览}</h2> <p>自注入是指 Spring Bean 将自身作为依赖注入。它使用 Spring 容器获取自身的引用,然后使用该引用执行某些操作。</p> <p>在这个简短的教程中,我们将了解如何在 Spring 中使用自注入。</p> <h2>2、自注入的场景 {#...
<h2>1、概览 {#1概览}</h2> <p><a href="/spring-boot/cli.html">Spring Boot CLI</a> 是一个 Spring Boot 工具,用于从命令运行和测试 Spring Boot 应用。该工具提供了一个非常有用的密码编码功能,主要目的是避免暴露...
1、简介 {#1简介} ----------- 模块化单体(Modular Monolith)是一种架构风格,在这种风格中,我们的源代码按照模块的概念进行结构化。对于许多组织来说,模块化单体是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要时过渡到微服务架构。 [Spring Modulith](https://spring.io/projects/spri...
在 Spring 应用中,无论使用 [`JdbcTemplate`](/spring-boot-jdbctemplate-tutorial/) 还是 JPA/Hibernate 或 Spring Data JPA,都需要处理数据库事务。 数据库事务是一个事务单元,它要么全部完成,要么都不完成,并使数据库处于一致状态。在实现数据库事务时,需要考虑到 ACID(原子性、一致性、隔...
<h2>1、简介 {#1简介}</h2> <p>在这个简短的教程中,我们将了解如何在 Spring Boot 中使用虚拟线程(Virtual Threads)。</p> <p>虚拟线程是 Java 19 的 <a href="https://openjdk.org/jeps/425">预...
1、概览 {#1概览} ----------- 在本教程中,我们将学习如何在 Spring Boot 中调用 OpenAI ChatGPT API。我们将创建一个 Spring Boot 应用程序,通过调用 OpenAI ChatGPT API 来生成对提示的回复。 2、OpenAI ChatGPT API {#2openai-chatgpt-api} ----------...
<p>WebP 是一种现代的图像格式,由 Google 开发。它采用了无损和有损的压缩算法,可以显著减小图像文件的大小,同时保持较高的视觉质量。WebP 图像通常比 JPEG 和 PNG 格式的图像更小,并且具有更快的加载速度,这对于 Web 应用程序和网页的性能优化非常有益。此外,WebP 还支持透明度和动画,使其成为一个多功能的图像格式。它已经得到了广泛的支持,...
<h2>1、概览 {#1概览}</h2> <p>在任何现代浏览器中,随着通过 REST API 获取数据的 HTML5 和 JS 客户端的出现,跨源资源共享 (CORS) 已成为一种相关规范。</p> <p>通常,提供 JS 的主机(如 <code>example.com</code>)与提供数...
<p><a href="https://mybatis.org/mybatis-3/zh/index.html">MyBatis</a> 是一个流行的 Java 持久层框架,它简化了与关系型数据库的交互。通过将 SQL 语句与 Java 代码进行映射,MyBatis 提供了一种方便、灵活的方式来执行数据库操作。它支持动态S...
<p>在本文中,你将学习如何在 Spring Boot 应用程序中实现使用 gRPC 进行通信。gRPC 是一个现代的开源远程过程调用(RPC)框架,可以在任何环境中运行。默认情况下,它使用 Google 的 Protocol Buffer 来对结构化数据进行序列化和反序列化。当然,我们也可以切换到其他数据格式,比如 JSON。为了简化我们在 gRPC 和 Spri...