小编典典

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

spring-boot

我开始了一个新的spring-boot 1.5.3项目。添加了一些启动器:

  • 数据表
  • 入门网站
  • 数据休息

然后添加

  • 开发工具
  • h2

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

那么,这个值到底是从哪里来的呢?


阅读 373

收藏
2020-05-30

共1个答案

小编典典

这将来自此类,该类还包含其他类型的内存数据库的默认值。

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";

2020-05-30