【SpringBoot笔记7】SpringBoot整合Druid

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hbtj_1216/article/details/85038282

参考:

Druid常见问题Wiki

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-usernamespring.datasource.druid.stat-view-servlet.login-password设定。

猜你喜欢

转载自blog.csdn.net/hbtj_1216/article/details/85038282