DataSource详解

发布时间:2023-05-21

一、DataSource已关闭的处理

在大量使用数据源时,有时会出现数据源使用后未关闭的情况,这个问题使用Spring Boot可以很容易解决。Spring Boot中的DataSource是由Tomcat中的Commons DataSource构建的。 我们可以使用初始化属性等设置,通过指定destroyMethod来定义关闭应用程序上下文时的关闭行为。

@Bean(destroyMethod = "close")
public DataSource dataSource(){
    return new DataSource();
}

二、如何创建DataSource

1、使用DruidDataSource

DruidDataSource是Alibaba提供的一个开源的数据库连接池,相比于其他连接池,它有更多的监控特性,更好的性能。

@Configuration
public class DruidConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.druid")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
}

2、使用自定义的DataSource

Spring Boot不仅支持常规的数据源(如MySQL,PostgreSQL等),还可以自定义我们自己的数据源。只需要实现DataSource接口即可。

public class MyDataSource implements DataSource {
    // 实现接口中的所有方法
    // ...
}

三、DataSourceProperties的选取

1、url

指定连接到哪个数据库。参数格式如下:

jdbc:mysql://localhost:3306/local_db

2、username和password

指定连接到数据库需要用到的用户名和密码。

spring.datasource.username = root
spring.datasource.password = admin

3、driver-class-name

指定连接数据库对应的驱动类。Spring Boot会自动根据指定的数据库URL猜测所需的驱动器类,因此可以放心省略这个参数。

spring.datasource.driver-class-name = com.mysql.jdbc.Driver

4、其他选项

其他的一些选项还包括:initial-size,测试连接,以及连接超时等等。这些选项可以根据自己的实际需求进行设置。

spring.datasource.initial-size = 5
spring.datasource.max-active = 50
...