1.Druid概述
Druid 是一个开源的数据库连接池框架,用于管理和优化数据库连接的使用。它提供了高效的、可扩展的连接池管理,可以用于 Java 应用程序连接到关系型数据库。
之前有了解过 C3P0 数据库连接池,所谓数据库连接池就是重复利用连接数据库的连接对象,加快访问数据库的时间。
2.Druid使用
2.1 导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
2.2 配置Druid
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverdynamic:strict: trueprimary: vicedatasource:main:url: username: password: vice:url: username:password: druid:# 初始化大小,最小,最大initial-size: 5min-idle: 5max-active: 20# 配置获取连接等待超时的时间max-wait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis: 6000# 配置一个连接在池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis: 300000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-return: true# 打开PSCache,并且指定每个连接上PSCache的大小pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,wall用于防火墙filters: stat,wall,slf4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connection-properties: spring.druid.stat.mergeSql=true;spring.druid.stat.slowSqlMillis=5000
2.3 排除原生Druid的快速配置类
@SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class})
@MapperScan("com.luobei.demo.modules.*.*.mapper")
@EnableTransactionManagement
public class DemoAppRun {public static void main(String[] args) {SpringApplication.run(DemoAppRun.class, args);}
}