多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
还可以使用池化DataSource自动配置生产数据库连接。 Spring Boot使用以下算法来选择特定的实现: 1. 我们更喜欢HikariCP的性能和并发性。 如果HikariCP可用,我们总是选择它。 2. 其次,使用tomcat池`DataSource `可用的, 3. 最后使用 Commons DBCP2 如果使用`spring-boot-starter-jdbc` 或` spring-boot-starter-data-jpa`,会自动获得依赖`HikariCP`. >您可以完全绕过该算法,并通过设置`spring.datasource.type`属性指定要使用的连接池。 如果您在Tomcat容器中运行应用程序,这一点尤为重要,因为默认情况下会提供`tomcat-jdbc`。 > > 连接池也可手动添加,如果你定义了自己的`DataSource`bean,自动配置就不会发生了 > 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.datasource.url`属性指定URL,否则spring boot尝试自动配置嵌入式的内存数据库 > >一般你不需要指定`driver-class-name`,因为Spring Boot可以从url中为大多数数据库推断出它。 > >对于要创建连接池的DataSource,我们需要能够验证有效的Driver类是否可用,因此我们在执行任何操作之前检查它。 换句话说,如果设置(或者从url中推断出)`spring.datasource.driver-class-name = com.mysql.jdbc.Driver`,那么该类必须是可加载的,必须在类路径中。 > 有关更多支持的选项,请参阅[DataSourceProperties](https://github.com/spring-projects/spring-boot/tree/v2.0.4.RELEASE/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceProperties.java)。 无论实际实施如何,这些都是标准选项。 也可以通过使用各自的前缀(`spring.datasource.hikari.*`, `spring.datasource.tomcat.*`, `and spring.datasource.dbcp2.*`)来微调特定于实现的设置。 有关更多详细信息,请参阅您正在使用的连接池实现的文档。 例如,使用[tomcat连接池](https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html#Common_Attributes),可以定制许多属性,如下 ~~~ # 等待连接的时间,毫秒 spring.datasource.tomcat.max-wait=10000 # 同一时间允许获取的最大连接数 spring.datasource.tomcat.max-active=50 # 在从池中借用连接之前验证连接。 spring.datasource.tomcat.test-on-borrow=true ~~~