从文件中:
Spring自动配置尝试根据您添加的jar依赖关系自动配置Spring应用程序。例如,如果您的类路径上有HSQLDB,并且没有手动配置任何数据库连接bean,那么我们将自动配置内存中的数据库。
在这里,什么是自动配置的(就数据库配置而言)?那么这个springboot自动配置是如何工作的呢?
发布于 2016-09-06 19:07:17
AutoConfigurations列表
您将找到AutoConfiguration类=> 这里的列表(有100多个,所以我不会粘贴这个列表)。当在类路径上找到特定的类和/或定义了一些bean时,它们中的大多数(如果不是全部)都会触发@Conditionally。
HibernateJpaAutoConfiguration
如果我以HibernateJpaAutoConfiguration为例。没有它,您通常会创建一个@Configuration类来定义:
使用HibernateJpaAutoConfiguration,不需要定义这些,spring-boot会为您处理这些问题。它甚至试图确定application.properties中的数据库连接是否用于嵌入式数据库,并启动它,并相应地配置hibernate属性。
spring.factories
Spring-Boot加载META-INF/spring.factories .工厂中定义的AutoConfigurations (在spring-boot-autoconfigure jar中)。还可以在自定义AutoConfiguration文件中定义自己的spring.factories类。如果您经常在多个项目中以类似的方式配置相同的bean(我从来没有这样做过!),这可能会很有用。
Recap
在大多数情况下,*-AutoConfiguration只需设置@Beans,否则就需要在@Configuration类中设置自己。换句话说,AutoConfiguration捆绑了一组@Conditional @Beans。它尽其所能地做到了,但是如果你愿意的话,你可以用你自己的方法来覆盖它们。
附加信息
发布于 2016-09-06 19:05:21
用于数据库设置:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html
它将详细说明指定应用程序属性和自动配置的内容。
https://stackoverflow.com/questions/39355908
复制相似问题