我开始了一个新的spring-boot 1.5.3项目。添加了一些启动器:
然后添加
我可以看到数据源已自动设置为jdbc:h2:mem:testdb。一切正常,但出于好奇,我试图确定jdbc:h2:mem:testdb价值的来源。我搜索了spring- boot,spring-data,spring jdbc和devtools项目的源代码,但无法找到。据我所知,该值也不是来自h2的默认建议。
jdbc:h2:mem:testdb
那么,这个值到底是从哪里来的呢?
这将来自此类,该类还包含其他类型的内存数据库的默认值。
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中的默认设置,
testdb
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";