SpringBoot配置DataSource(简述版)

btbt365me 📅 2025-11-22 05:02:03 ✍️ admin 👁️ 7261 ❤️ 877
SpringBoot配置DataSource(简述版)

默认数据源

Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 中,分别是:

org.apache.tomcat.jdbc.pool.DataSourcecom.zaxxer.hikari.HikariDataSourceorg.apache.commons.dbcp.BasicDataSourceorg.apache.commons.dbcp2.BasicDataSource对于这4种数据源,当 classpath 下有相应的类存在时,Springboot 会通过自动配置为其生成DataSource Bean,DataSource Bean默认只会生成一个,四种数据源类型的生效先后顺序如下:Tomcat--> Hikari --> Dbcp --> Dbcp2 。

添加依赖与配置

在Springboot 使用JDBC可直接添加官方提供的 spring-boot-start-jdbc 或者 spring-boot-start-data-jpa 依赖。

org.springframework.boot

spring-boot-starter-parent

1.4.1.RELEASE

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

在核心配置application.properties或者application.yml文件中添加数据源相关配置。

(两种配置方式 “application.properties与application.yml” 任选其一)

application.properties文件中添加如下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.username=root

spring.datasource.password=123456

application.yml文件中添加如下配置:

spring:

datasource:

url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8

driverClassName: com.mysql.jdbc.Driver

username: root

password: 123456

切换默认数据源

按照上述配置启动应用时,Springboot会读取核心配置中的配置并自动装配一个Tomcat DataSource。如果要切换成其他的默认支持的数据源类型,有以下两种方式:方式一 排除其他的数据源依赖,仅保留需要的数据源依赖;

方式二 通过在核心配置中通过spring.datasource.type属性指定数据源的类型;

方式一

Springboot默认支持的4种数据源Maven依赖如下:

org.apache.tomcat

tomcat-jdbc

com.zaxxer

HikariCP

commons-dbcp

commons-dbcp

org.apache.commons

commons-dbcp2

当我们引入spring-boot-start-jdbc依赖时,其实里面就包含了 Tomcat-JDBC 的依赖,如果想要切换为其他的数据源类型,需要先将Tomcat-JDBC 依赖排除,再添加上需要的数据源的依赖,以使用HikariCP数据源为例,依赖配置如下。

org.springframework.boot

spring-boot-starter-jdbc

org.apache.tomcat

tomcat-jdbc

com.zaxxer

HikariCP

方式二

此外,还可以通过在核心配置中通过添加spring.datasource.type = [数据源类型] 来指定数据源的类型;

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

# spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

# spring.datasource.type=org.apache.commons.dbcp.BasicDataSource

# spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource

第三方数据源

如果不想使用Springboot默认支持的4种数据源,还可以选择使用其他第三方的数据源,例如:Druid、c3p0等。

以使用Druid数据源为例。

添加依赖与配置

在pom文件中引入第三方数据源依赖。

org.springframework.boot

spring-boot-starter-parent

1.4.1.RELEASE

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

com.alibaba

druid

1.1.6

核心配置文件中的添加数据源相关配置与使用默认数据源时的配置相同,此处不再重复贴出。

定义数据源

使用注解@Bean 创建一个DataSource Bean并将其纳入到Spring容器中进行管理即可。

@Configuration

public class DataSourceConfig {

@Autowired

private Environment env;

@Bean

public DataSource getDataSource() {

DruidDataSource dataSource = new DruidDataSource();

dataSource.setUrl(env.getProperty("spring.datasource.url"));

dataSource.setUsername(env.getProperty("spring.datasource.username"));

dataSource.setPassword(env.getProperty("spring.datasource.password"));

return dataSource;

}

}

或者:

@Configuration

@ConfigurationProperties(prefix = "spring.datasource")

public class DataSource2Config {

private String url;

private String username;

private String password;

@Bean

public DataSource getDataSource() {

DruidDataSource dataSource = new DruidDataSource();

dataSource.setUrl(url);

dataSource.setUsername(username);// 用户名

dataSource.setPassword(password);// 密码

return dataSource;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

---------------------

原文:https://blog.csdn.net/pengjunlee/article/details/80081231

相关推荐

施工方案用品茗哪个软件?如何选择适合的品茗软件进行高效施工管理
维修达人 数码之家
天猫和淘宝的区别,网购选哪个更划算?