赞
踩
- /**
- * 配置 druid的监控页功能
- * @return
- */
- // @Bean
- public ServletRegistrationBean statViewServlet(){
- StatViewServlet statViewServlet = new StatViewServlet();
- ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(statViewServlet, "/druid/*");
-
- registrationBean.addInitParameter("loginUsername","admin");
- registrationBean.addInitParameter("loginPassword","123456");
-
-
- return registrationBean;
- }
-
- /**
- * WebStatFilter 用于采集web-jdbc关联监控的数据。
- */
- // @Bean
- public FilterRegistrationBean webStatFilter(){
- WebStatFilter webStatFilter = new WebStatFilter();
-
- FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(webStatFilter);
- filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
- filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
-
- return filterRegistrationBean;
- }
这段代码是用于配置Druid监控页面和WebStatFilter的功能。让我来解释一下这段代码的作用:
statViewServlet
方法用于配置Druid的监控页面功能。它创建了一个 StatViewServlet
实例,并使用 ServletRegistrationBean
将其注册到Servlet容器中,指定了监控页面的访问路径为 "/druid/"。同时,设置了监控页面的登录用户名和密码为 "admin" 和 "123456"。这样做的目的是为了能够通过访问 "/druid/" 路径来查看Druid监控页面,同时需要提供登录用户名和密码进行访问。
webStatFilter
方法用于配置Druid的WebStatFilter,用于采集web-jdbc关联监控的数据。它创建了一个 WebStatFilter
实例,并使用 FilterRegistrationBean
将其注册到Servlet容器中,设置了URL模式为 "/*",并且设置了一些排除项,例如排除了一些静态资源和Druid监控页面的访问路径。
综合来说,这段代码的作用是配置Druid的监控页面和WebStatFilter,使得可以通过指定的路径访问Druid的监控页面,并且采集web-jdbc关联监控的数据。
当使用Spring Boot 2.x版本及以上时,可以使用application.properties
或application.yml
文件来配置Druid数据源和监控页面。以下是一个示例:
使用application.properties配置文件的示例:
# 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Druid监控页面配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 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 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.filters=stat,wall,log4j spring.datasource.useGlobalDataSourceStat=true spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # Druid监控页面配置 spring.datasource.druid.statViewServlet.loginUsername=admin spring.datasource.druid.statViewServlet.loginPassword=123456 spring.datasource.druid.filter.web.stat-filter.enabled=true spring.datasource.druid.filter.web.stat-filter.url-pattern=/* spring.datasource.druid.filter.web.stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
使用application.yml配置文件的示例:
- spring:
- datasource:
- url: jdbc:mysql://localhost:3306/mydb
- username: root
- password: 123456
- driver-class-name: com.mysql.cj.jdbc.Driver
- type: com.alibaba.druid.pool.DruidDataSource
- initialSize: 5
- minIdle: 5
- maxActive: 20
- maxWait: 60000
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: SELECT 1
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- poolPreparedStatements: true
- maxPoolPreparedStatementPerConnectionSize: 20
- filters: stat,wall,log4j
- useGlobalDataSourceStat: true
- connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
- druid:
- statViewServlet:
- loginUsername: admin
- loginPassword: 123456
- filter:
- web:
- stat-filter:
- enabled: true
- url-pattern: /*
- exclusions: *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
在这个示例中,我们使用了spring.datasource
前缀来配置Druid数据源,以及spring.datasource.druid
前缀来配置Druid的监控页面和WebStatFilter。这种配置方式更加直观和易于维护,推荐在Spring Boot 2.x及以上版本中使用。
- stat-view-servlet: # 监控页配置
- enabled: true # 是否启用监控页
- login-username: admin # 登录用户名
- login-password: admin # 登录密码
- resetEnable: false # 是否允许重置监控配置
-
- web-stat-filter: # Web监控
- enabled: true # 是否启用Web监控
- urlPattern: /* # URL匹配模式
- exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' # 排除项,不进行Web监控的URL
-
- filter:
- stat: # SQL监控
- slow-sql-millis: 1000 # SQL执行时间阈值,超过该阈值将被记录
- logSlowSql: true # 是否记录慢SQL
- enabled: true # 是否启用SQL监控
- wall: # 防火墙
- enabled: true # 是否启用防火墙
- config:
- drop-table-allow: false # 是否允许执行删除表的操作
解释:
stat-view-servlet
部分配置了Druid的监控页面相关参数。enabled
指定是否启用监控页面,login-username
和login-password
分别为登录用户名和密码,resetEnable
表示是否允许重置监控配置。web-stat-filter
部分配置了Web监控相关参数。enabled
指定是否启用Web监控,urlPattern
指定URL匹配模式,exclusions
指定不进行Web监控的URL。filter
部分配置了Druid的过滤器,包括SQL监控和防火墙。stat
部分配置了SQL监控的参数,包括slow-sql-millis
指定SQL执行时间阈值,logSlowSql
指定是否记录慢SQL,enabled
指定是否启用SQL监控。wall
部分配置了防火墙的参数,包括enabled
指定是否启用防火墙,config
中的drop-table-allow
指定是否允许执行删除表的操作。
stat-view-servlet:
enabled
: 指定是否启用Druid的监控页面,允许通过浏览器访问监控数据。login-username
和login-password
: 用于设置访问监控页面时的登录用户名和密码,用于保护监控页面不被未授权的访问所获取。resetEnable
: 指定是否允许重置监控配置,即允许动态修改监控配置。web-stat-filter:
enabled
: 指定是否启用Druid的Web监控功能,用于监控Web请求的性能和SQL执行情况。urlPattern
: 指定需要进行Web监控的URL匹配模式。exclusions
: 指定不进行Web监控的URL,可以排除一些静态资源或特定URL,避免监控数据被干扰。filter:
stat:用于配置Druid的SQL监控功能。
slow-sql-millis
: 指定SQL执行时间的阈值,超过该阈值的SQL将被记录下来。logSlowSql
: 指定是否记录慢SQL,用于分析和优化SQL性能。enabled
: 指定是否启用SQL监控功能。wall:用于配置Druid的防火墙功能,用于防止SQL注入等安全问题。
enabled
: 指定是否启用防火墙功能。config
中的drop-table-allow
: 指定是否允许执行删除表的操作,可以增强数据库的安全性。这些配置项可以帮助开发人员监控数据源的性能、SQL执行情况和Web请求情况,同时提供了一些安全防护措施,有助于优化系统性能和保障数据安全。
这样的配置方式更加直观和易于理解,可以方便地配置Druid的监控页面和过滤器功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。