生产数据库连接也可以使用池进行自动配置?DataSource。Spring Boot使用以下算法来选择特定的实现:
我们更喜欢HikariCP的性能和并发性。如果HikariCP可用,我们总是选择它。
否则,如果Tomcat池DataSource可用,我们使用它。
如果HikariCP和Tomcat池数据源都不可用,并且?Commons DBCP2可用,那么我们使用它。
如果你使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa“starters”,你会自动获得依赖HikariCP。
您可以完全绕过该算法,并通过设置spring.datasource.type属性来指定要使用的连接池。如果您在Tomcat容器中运行应用程序,这tomcat-jdbc是默认情况下提供的,这一点尤其重要。
其他连接池始终可以手动配置。如果您定义了您自己的DataSourcebean,则不会发生自动配置。
数据源配置由外部配置属性控制?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.datasource.url?属性来指定URL?。否则,Spring Boot将尝试自动配置嵌入式数据库。
你通常不需要指定driver-class-name,因为Spring Boot可以从大多数数据库中推导出它url。
为了DataSource创建池,我们需要能够验证一个有效的?Driver类是否可用,因此我们在做任何事之前检查它。换句话说,如果你设置了spring.datasource.driver-class-name=com.mysql.jdbc.Driver,那么这个类必须是可加载的。
查看?DataSourceProperties?更多支持的选项。无论实际实施情况如何,这些都是标准选项。也可以微调实现特定的设置,使用各自的前缀(spring.datasource.hikari.*,?spring.datasource.tomcat.*,和spring.datasource.dbcp2.*)。请参阅您正在使用的连接池实现的文档以获取更多详细信息。
例如,如果您使用?Tomcat连接池,则可以自定义许多其他设置,如以下示例中所示:
#如果没有连接可用,则在抛出异常之前等待的毫秒数。
spring.datasource.tomcat.max-wait = 10000
#可以同时从该池中分配的最大活动连接数。
spring.datasource.tomcat.max-active = 50
#在从池中借用它之前验证连接。
spring.datasource.tomcat.test-on-borrow = true