使用 DataSource


DataSource 配置

使用 DataSource 需要使用 DataSource 可以在 pom.xml 中添加 spring-boot-starter-jdbc 依赖,这会自动加入 Spring Jdbc 的依赖,还需要加入相应的 JDBC 驱动包的依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

DataSource的自动配置由org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 负责,当不存在DataSource类型的bean时,其会负责创建一个池化的DataSource。内置支持的连接池包括下面这几个,默认自动使用的顺序也是按照下面的顺序进行使用。

即如果 Classpath下存在 HikariDataSource 时将优先使用 HikariDataSource,其次是 Tomcat 提供的数据库连接池,最后是 dbcp2。

当添加了spring-boot-starter-jdbc依赖时,会自动级联加入Hikari依赖,即此时默认将使用HikariDataSource。当Classpath下同时存在多个支持的数据库连接池实现时,如果不期望使用自动选择的数据库连接池实现,可以通过spring.datasource.type指定需要使用的数据库连接池实现。

比如如果 Classpath 下同时存在 com.zaxxer.hikari.HikariDataSource和org.apache.tomcat.jdbc.pool.DataSource,默认将使用com.zaxxer.hikari.HikariDataSource,如果期望使用org.apache.tomcat.jdbc.pool.DataSource,则可以配置spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource。

然后可以通过 spring.datasource 前缀开始的属性配置数据库连接相关的信息了,比如配置 URL、驱动 Class、用户名、密码等。数据库的配置信息由org.springframework.boot.autoconfigure.jdbc.DataSourceProperties 负责接收。

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=elim