Spring引导自动配置

Spring引导自动配置,spring,spring-boot,Spring,Spring Boot,从文件中: Spring引导自动配置尝试自动配置 您的Spring应用程序基于您拥有的jar依赖关系 补充。例如,如果HSQLDB在类路径上,而您没有 手动配置任何数据库连接bean,然后我们将 自动配置内存中的数据库 这里到底自动配置了什么(在数据库配置方面)?这个springboot自动配置是如何工作的 对于数据库设置: 它将提供有关指定应用程序属性和自动配置内容的详细信息。自动配置列表 您将看到自动配置类的列表=>(有一百多个,因此我不会粘贴该列表)。当在类路径上找到特定类和/或定义了一些

从文件中:

Spring引导自动配置尝试自动配置 您的Spring应用程序基于您拥有的jar依赖关系 补充。例如,如果HSQLDB在类路径上,而您没有 手动配置任何数据库连接bean,然后我们将 自动配置内存中的数据库

这里到底自动配置了什么(在数据库配置方面)?这个springboot自动配置是如何工作的

对于数据库设置:


它将提供有关指定应用程序属性和自动配置内容的详细信息。

自动配置列表

您将看到自动配置类的列表=>(有一百多个,因此我不会粘贴该列表)。当在类路径上找到特定类和/或定义了一些bean时,它们中的大多数(如果不是全部的话)都会有条件地被触发

自动配置

如果我以
HibernateJpaAutoConfiguration
为例。没有它,您通常会创建一个
@Configuration
类来定义:

  • @Bean数据源
  • @豆类营养管理器
  • @Bean事务管理器
  • 可能是一些hibernate属性
使用
hibernatejpa自动配置
,无需定义这些配置,
spring boot
为您处理这些配置。它甚至尝试确定application.properties中的数据库连接是否用于嵌入式数据库,并启动它,并相应地配置hibernate属性

春天工厂

Spring-Boot
加载(在
Spring-Boot-autoconfigure
jar中)中定义的
自动配置。
您还可以在自定义的
spring.factories
文件中定义自己的自动配置类。如果您经常在多个项目中以类似的方式配置相同的bean,这可能会很有用(我从来没有这样做过!)

重述

在大多数情况下,
*-AutoConfiguration
只需设置
@Beans
,否则您需要在
@Configuration
类中设置自己。换句话说,自动配置捆绑了一组
@Conditional@Beans
。它尽其所能做到这一点,但如果你愿意,你可以用你自己的来覆盖它们

其他信息


就目前而言,这个问题非常非常广泛。如果你想了解一些具体的问题,请重新措辞,将其包括在内。。我想知道关于自动配置方面的数据库配置只。。。(相应地重新措辞)我建议在提出这样一个广泛的问题之前,先尝试一下spring.io入门指南中的一些内容,以便更熟悉一些东西。Spring Boot所做的大部分工作都基于Spring框架本身。要理解自动配置(数据源、连接池等),首先必须了解这一点。