Spring Boot自动配置

时间:2016-09-06 18:47:37

标签: spring spring-boot

来自文档:

  

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

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

2 个答案:

答案 0 :(得分:3)

自动配置列表

你会找到AutoConfiguration classes =>的列表。 here(有一百多个,所以我不会粘贴列表)。当在类路径上找到特定类和/或定义了某些bean时,大多数(如果不是全部)都被触发@Conditionally

<强> HibernateJpaAutoConfiguration

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

  • @Bean DataSource;
  • @Bean EntityManager;
  • @Bean transactionManager;
  • 可能是一些hibernate属性。

使用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

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