版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hbtj_1216/article/details/85038282
参考:
https://blog.csdn.net/huaidandaidai1/article/details/80960573
1 整合与配置
1.1 引入依赖
Druid
官方提供了一个druid-spring-boot-starter
包,用以简化在SpringBoot
中集成Druid
,首先在pom.xml
中引入它:
<!-- 整合Druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
1.2 配置
然后,需要在application.properties
文件中对Druid
进行基本配置,如下:
# Druid基本配置
###########################################################
# 指定数据源类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# Druid连接池配置
spring.datasource.druid.initial-size=3
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=3
# 配置获取连接等待超时的时间(毫秒)
spring.datasource.druid.max-wait=60000
spring.datasource.druid.validation-query=SELECT 'x'
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.test-while-idle=true
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是(毫秒)
spring.datasource.druid.time-between-eviction-runs-millis=60000
#配置一个连接在池中最小生存的时间,单位是(毫秒)
spring.datasource.druid.min-evictable-idle-time-millis=300000
#配置起作用的Filter, 多个英文逗号分隔
spring.datasource.druid.filters=stat,wall
# Druid监控配置
###########################################################
# WebStatFilter配置
# 说明请参考Druid Wiki,配置_配置WebStatFilter
# 是否启用StatFilter, 默认值true
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
# session统计功能
spring.datasource.druid.web-stat-filter.session-stat-enable=false
# 最大session数
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
# 你可以配置principalSessionName, 使得druid能够知道当前的session的用户是谁
spring.datasource.druid.web-stat-filter.principal-session-name=admin
# 你可以配置principalCookieName,使得druid能够知道当前的cookie的用户是谁
spring.datasource.druid.web-stat-filter.principal-cookie-name=admin
# 配置profileEnable能够监控单个url调用的sql列表
spring.datasource.druid.web-stat-filter.profile-enable=true
# StatViewServlet配置
# 展示Druid的统计信息, StatViewServlet的用途包括: 1.提供监控信息展示的html页面; 2.提供监控信息的JSON API
# 是否启用StatViewServlet, 默认值true
spring.datasource.druid.stat-view-servlet.enabled=true
# 根据配置中的url-pattern来访问内置监控页面,内置监控页面的地址是{上下文}/druid例如:
# 你的应用地址是http://localhost:8080/app
# 那么Druid监控页面的地址就是http://localhost:8080/app/druid
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
# 允许清空统计数据
spring.datasource.druid.stat-view-servlet.reset-enable=true
# 配置登录用户名
spring.datasource.druid.stat-view-servlet.login-username=admin
# 配置登录密码
spring.datasource.druid.stat-view-servlet.login-password=admin
# StatViewSerlvet展示出来的监控信息比较敏感, 是系统运行的内部情况, 如果你需要做访问控制, 可以配置allow和deny这两个参数
# deny优先于allow, 如果在deny列表中, 就算在allow列表中, 也会被拒绝. 如果allow没有配置或者为空, 则允许所有访问.
# 配置的格式
# <IP>
# 或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24
# 24表示, 前面24位是子网掩码, 比对的时候, 前面24位相同就匹配, 不支持IPV6.
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.deny=
# WallFilter配置
# 是否启用WallFilter, 默认值true
spring.datasource.druid.filter.wall.enabled=true
# 数据库类型
spring.datasource.druid.filter.wall.db-type=postgresql
spring.datasource.druid.filter.wall.config.alter-table-allow=false
spring.datasource.druid.filter.wall.config.truncate-allow=false
spring.datasource.druid.filter.wall.config.drop-table-allow=false
# 是否允许非以上基本语句的其他语句, 缺省关闭, 通过这个选项就能够屏蔽DDL.
spring.datasource.druid.filter.wall.config.none-base-statement-allow=false
# 检查UPDATE语句是否无where条件, 这是有风险的, 但不是SQL注入类型的风险
spring.datasource.druid.filter.wall.config.update-where-none-check=true
# SELECT ... INTO OUTFILE 是否允许, 缺省是禁止的
spring.datasource.druid.filter.wall.config.select-into-outfile-allow=false
# 是否允许调用Connection.getMetadata方法, 这个方法调用会暴露数据库的表信息
spring.datasource.druid.filter.wall.config.metadata-allow=true
# 对被认为是攻击的SQL进行LOG.error输出
spring.datasource.druid.filter.wall.log-violation=true
# 对被认为是攻击的SQL抛出SQLExcepton
spring.datasource.druid.filter.wall.throw-exception=true
部分配置项需要根据实际项目进行调整!!!
2 查看Druid监控
根据spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
配置,查看Druid
监控的地址是{上下文}/druid
。
例如,应用app
通过tomcat
部署,上下文地址为http://localhost:8080/app
,那么对应的Druid
监控查看地址为http://localhost:8080/app/druid
。
登录的用户名和密码分别由spring.datasource.druid.stat-view-servlet.login-username
和spring.datasource.druid.stat-view-servlet.login-password
设定。