SpringBoot之集成Druid数据库连接池

SpringBoot之集成Druid

导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.9</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

配置Druid

首先创建/resources/application.yaml:

spring:
  datasource:
    name: xxx
    password: xxx
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/demo?&useUnicode=True&characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    # ---druid
    initialSize: 5 # 初始化数量
    maxActive: 20 # 最大活动连接数
    minIdle: 1 # 最小空闲数量
    maxWait: 6000 # 最大等待时间

然后写一个自定义的Configure类,用来创建我们的数据源:

package com.baiyang.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class Configure {

    @Bean
	//指定从配置中加载"spring.datasource"开头的配置,因为我们的Druid的配置是写在这个前缀下面的。
    @ConfigurationProperties(prefix = "spring.datasource")
	//指定条件:必须配置了spring.datasource.type属性,并且属性的值必须是"com.alibaba.druid.pool.DruidDataSource"才加载DruidDataSource。
	@ConditionalOnProperty(prefix = "spring.datasource", name = "type", havingValue = "com.alibaba.druid.pool.DruidDataSource")
    public DataSource getDataSource() {
        return new DruidDataSource();
    }
}

测试

package com.baiyang.springboot;

import com.alibaba.druid.pool.DruidDataSource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;

@SpringBootTest
class SpringbootTestApplicationTests {
    @Autowired
    private DataSource dataSource;

	/**
     * 打印数据源信息
     */
    @Test
    public void printDataSource() {
        String str = String.format("\033[1;33mDataSource info: type=%s", dataSource.getClass().getSimpleName());
        if (dataSource instanceof DruidDataSource) {
            DruidDataSource druidDataSource = (DruidDataSource) dataSource;
            str = String.format("%s,initialSize=%s,maxActive=%s,maxIdle=%s", str, druidDataSource.getInitialSize(), druidDataSource.getMaxActive(), druidDataSource.getMaxIdle());
        }
        System.out.printf("%s\033[0m\n", str);
    }
}

最后

Druid github wiki主页
Druid github 常见问题
Druid github 参考配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值