来自文档:
Spring Boot自动配置尝试自动配置 您的Spring应用程序基于您拥有的jar依赖项 添加。例如,如果HSQLDB在您的类路径上,而您还没有 手动配置任何数据库连接bean,然后我们将 自动配置内存数据库。
这里自动配置的是什么(在数据库配置方面)?这个springboot自动配置是如何工作的?
答案 0 :(得分:3)
自动配置列表
你会找到AutoConfiguration classes =>的列表。 here(有一百多个,所以我不会粘贴列表)。当在类路径上找到特定类和/或定义了某些bean时,大多数(如果不是全部)都被触发@Conditionally
。
<强> HibernateJpaAutoConfiguration 强>
如果我以HibernateJpaAutoConfiguration
为例。没有它,您通常会创建一个@Configuration
类来定义:
使用HibernateJpaAutoConfiguration
,无需定义,spring-boot
为您处理。它甚至试图确定application.properties中的数据库连接是否用于嵌入式数据库,并启动它,并相应地配置hibernate属性。
<强> spring.factories 强>
Spring-Boot
加载META-INF/spring.factories中定义的AutoConfigurations
(在spring-boot-autoconfigure
jar中)。
您还可以在自定义spring.factories
文件中定义自己的AutoConfiguration类。如果你在多个项目中以类似的方式经常配置相同的bean(我从来没有这样做过!),这可能很有用。
<强>小结强>
在大多数情况下,*-AutoConfiguration
只会设置@Beans
,否则您需要在@Configuration
课程中自行设置。换句话说,AutoConfiguration捆绑了一组@Conditional @Beans
。它尽其所知来做到这一点,但如果你愿意,你可以用自己的方法覆盖它们。
其他信息
答案 1 :(得分:0)
对于数据库设置:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html
它将提供有关指定应用程序属性以及自动配置的详细信息。