SpringBoot中Druid数据库连接池的配置
·
SpringBoot中Druid数据库连接池的配置:
(1)Druid的依赖和log4j的依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
(2)yaml中的配置
spring:
datasource:
username: xxx
password: xxx
#?serverTimezone=UTC解决时区的报错
url: jdbc:mysql://localhost:3306/数据库的名字?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource #这是使用的Druid连接池,所以需要安装Druid的依赖;
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#对于mabatis的配置
mybatis:
type-aliases-package: com.example.pojo #实体类所在包
mapper-locations: classpath:mybatis/mapper/*.xml #指定mapper文件所在的包
(3)在config中配置Druid的配置文件:
package com.example.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;
/**
* @author Lenovo
* @date 2023/4/12
* @time 14:03
* @project springboot_mybatis
**/
@Configuration
public class DruidConfig {
//自定义Druid数据源到spring容器中,不再让springboot自动创建
/**
* @ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中
* 前缀为 spring.datasource的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中
*/
@ConfigurationProperties(prefix = "spring.datasource")
//注册Bean对象:
@Bean
public DataSource druidDataSource(){
//返回一个druidDataSource;
return new DruidDataSource();
}
}
更多推荐
所有评论(0)