druid是阿里巴巴开发的数据库连接池。和其他数据源相比支持监控和扩展功能。

druid有一个支持自动配置的springboot starter。一般情况下只需要引入依赖,然后写配置文件就可以了。

在gradle中引入依赖


 compile 'com.alibaba:druid-spring-boot-starter:1.1.10'

Druid的监控统计功能是通过filter-chain扩展实现。

比如


spring.datasource.druid.filters=stat,wall,slf4j

启用了stat,wall,slf4j三个filter。由于是链式的,位置不同结果也不同。这三个filter其实是别名 stat代表StatFilter,wall代表WallFilter,slf4j代表Slf4jFilter。

如果不用默认配置需要先启用相应的filter


spring.datasource.druid.filter.stat.enabled=true

statfilter主要和监控统计相关,支持slowsql统计。也支持合并统计多个没有占位符的相似的sql。


spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=200
spring.datasource.druid.filter.stat.merge-sql=true

wallFilter和安全相关,可以禁止某些sql语句的执行。Slf4jFilter用来日志记录JDBC执行的SQL。

监控信息可以通过页面的方式或者以接口的方式显示出来。

我配置了页面方式,比较直观。

出于安全考虑一般需要配置用户名,密码,url,允许访问的ip,禁止访问的ip等数据


spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*

druid还有很多高级功能具体可以参考官方文档   传送门