SpringBoot整合druid数据源

发布于:2024-12-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

SprintBoot默认使用的是HikariDataSource数据源,而且上次课中我们也说了这个数据源访问速度很快,但是这里还要给大家介绍一个第三方的数据源druid,它是阿里开发的一款开源的数据源,被很多人认为是Java语言中最好的数据库连接池,因为Druid能够提供强大的一整套监控和扩展功能,很爽。下面是具体的使用步骤:

1、导入maven的依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.11</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

使用了log4j就要自己在类路径下加配置文件:log4j.properties

log4j.rootLogger = debug,stdout, D
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ./log4j.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d %p %m%n

注意:druid依赖log4j的日志jar包,但是SpringBoot默认使用的是slf4j+logback,所以这里导入log4j的jar包才行

2、在全局配置文件通过type的配置改变数据源

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

3、在运行一下测试方法,看看能不能拿到数据源

class com.alibaba.druid.pool.DruidDataSource

4、不能用SpirngBoot默认利用反射的机制配置来获取druid数据源

因为数据源特有的配置SpringBoot默认配置是没有的,我们要自己做:

① 首先在全局配置文件中配上druid数据源自己的特性配置

#   数据源其他配置
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
#   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.useGlobalDataSourceStat=true  
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

② 自己创建配置类来创建数据源对象,并且手动获取这些配置,配置到数据源里去

 5、配置druid的监控

① 配置管理后台的servlet,druid提供的这个servlet名字叫:StatViewServlet

② 配置web监控的拦截器filter,druid提供的filter名字叫 :WebStatFilter

6、看看效果