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还有很多高级功能具体可以参考官方文档 传送门