根据此文档:
29.1.1嵌入式数据库支持 Spring Boot可以自动配置嵌入式H2,HSQL和Derby数据库。您无需提供任何连接URL,只需包含要使用的嵌入式数据库的构建依赖项即可。
29.1.1嵌入式数据库支持
Spring Boot可以自动配置嵌入式H2,HSQL和Derby数据库。您无需提供任何连接URL,只需包含要使用的嵌入式数据库的构建依赖项即可。
和
29.1.2连接到生产数据库 生产数据库连接也可以使用池数据源自动配置。 DataSource配置由spring.datasource。*中的外部配置属性控制。例如,您可以在application.properties中声明以下部分:
29.1.2连接到生产数据库
生产数据库连接也可以使用池数据源自动配置。
DataSource配置由spring.datasource。*中的外部配置属性控制。例如,您可以在application.properties中声明以下部分:
spring.datasource.url=jdbc:mysql://localhost/test spring.datasource.username=dbuser spring.datasource.password=dbpass spring.datasource.driver-class-name=com.mysql.jdbc.Driver
[提示]您通常不需要指定驱动程序类名称,因为Spring boot可以从url推断出大多数数据库。 [注意]为了创建池化的数据源,我们需要能够验证有效的Driver类是否可用,因此我们在进行任何操作之前都要进行检查。即,如果您设置 spring.datasource.driver-class-name = com.mysql.jdbc.Driver, 则该类必须是可加载的。
[提示]您通常不需要指定驱动程序类名称,因为Spring boot可以从url推断出大多数数据库。
[注意]为了创建池化的数据源,我们需要能够验证有效的Driver类是否可用,因此我们在进行任何操作之前都要进行检查。即,如果您设置 spring.datasource.driver-class-name = com.mysql.jdbc.Driver, 则该类必须是可加载的。
如果将以下内容放入 application.properties 文件,该怎么办:
spring.datasource.url=jdbc:hsqldb:file:db/organization-db spring.datasource.username=dbuser spring.datasource.password=dbpass spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
自从我指定了 spring.datasource.driver-class-name 以来,Spring Boot会自动配置池数据源吗? 还是只为嵌入式数据库驱动程序创建一个数据源而没有连接池? 如何确认Spring Boot是否正在使用连接池?
我的理解是,只要在classpath上有受支持的数据源类,spring-boot就会使用它,并且如果没有指定,则以tomcat作为首选项。
在DataSourceBuilder中给出了受支持的数据源的列表,当前的列表是tomcat,hikari,dbcp和dbcp2。
您可以通过javax.sql.Datasource从应用程序上下文中查找实现来验证是否已创建一个,尽管我不知道为什么不这样做。
javax.sql.Datasource
https://github.com/spring-projects/spring-boot/blob/master/spring-boot- autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBuilder.java