h2的默认数据源url来自Spring Boot?

时间:2017-06-08 22:33:04

标签: spring-boot

我开始了一个新的spring-boot 1.5.3项目。添加了一些初学者:

  • 数据JPA
  • 启动器 - 网
  • 数据静止

然后添加

  • devtools
  • H2

我可以看到数据源自动设置为jdbc:h2:mem:testdb。一切都工作正常,但出于好奇,我试图确定jdbc:h2:mem:testdb值的来源。我搜索了spring-boot,spring-data,spring jdbc和devtools项目'源代码,但我无法找到。据我所知,该值不是来自h2的默认建议。

那么这个价值究竟来自哪里?

1 个答案:

答案 0 :(得分:3)

这将来自这个类,它还包含其他版本的内存数据库的默认值。

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/EmbeddedDatabaseConnection.java

H2(EmbeddedDatabaseType.H2, "org.h2.Driver", "jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"),

如果符合条件,则通过DataSourceAutoConfiguration加载哪个,

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java

数据库名称testdb的默认值来自Datasourceproperties中的默认设置,

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceProperties.java

private String name = "testdb";