赞
踩
druid 参数配置详解 - halberd.lee - 博客园 (cnblogs.com)
https://www.cnblogs.com/halberd-lee/p/11304790.htmlSpringboot中配置Druid
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <--druid依赖-->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>1.1.10</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jdbc</artifactId>
- <version>2.5.3</version>
- </dependency>

spring: datasource: # 数据源基本配置 url: jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # 数据源其他配置 druid: # 配置初始化大小、最小、最大线程数 initialSize: 5 minIdle: 5 # CPU核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降 maxActive: 20 # 最大等待时间,内网:800,外网:1200(三次握手1s) maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最大空间时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true # 设置从连接池获取连接时是否检查连接有效性,true检查,false不检查 testOnBorrow: true # 设置从连接池归还连接时是否检查连接有效性,true检查,false不检查 testOnReturn: true # 可以支持PSCache(提升写入、查询效率) poolPreparedStatements: true # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,log4j # 保持长连接 keepAlive: true maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
方式一
- import com.alibaba.druid.pool.DruidDataSource;
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import javax.sql.DataSource;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.Map;
-
- @Configuration
- public class DruidConfig{
-
- @ConfigurationProperties(prefix= "spring.datasource")
- @Bean
- public DataSource druid(){
- return new DruidDataSource();
- }
-
- //配置Druid监控
- @Bean
- public ServletRegistrationBean statViewServlet(){
- ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
-
- Map<String,String> initParams=new HashMap<>();
- initParams.put("loginUsername","admin");
- initParams.put("loginPassword","admin");
- initParams.put("allow","0.0.0.0");//默认允许所有访问
-
- bean.setInitParameters(initParams);
- return bean;
- }
-
- //配置一个web监控的filter
- @Bean
- public FilterRegistrationBean webStatFilter(){
- FilterRegistrationBean bean=new FilterRegistrationBean();
- bean.setFilter(new WebStatFilter());
-
- Map<String,String> initParams=new HashMap<>();
- initParams.put("exclusions","*.js,*.css,/druid/*");
-
- bean.setInitParameters(initParams);
- bean.setUrlPatterns(Arrays.asList("/*"));
- return bean;
- }
- }

方式二(最佳,注意:将yaml文件中的filters:stat)
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import javax.servlet.Filter;
- import javax.servlet.Servlet;
-
-
- @Configuration
- public class DruidConfig {
-
- /**
- * 配置Druid 监控启动页面
- *
- * @return servletRegistrationBean
- */
- @Bean
- @ConditionalOnMissingBean
- public ServletRegistrationBean<Servlet> druidStartViewServlet() {
- ServletRegistrationBean<Servlet> servletRegistrationBean = new ServletRegistrationBean<Servlet>(new StatViewServlet(), "/druid/*");
- // 白名单
- servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
- // 黑名单
- servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
- // 登录查看信息的账密,用于登录Druid监控后台
- servletRegistrationBean.addInitParameter("loginUsername", "druid");
- servletRegistrationBean.addInitParameter("loginPassword", "druid");
- // 是否能够重置数据
- servletRegistrationBean.addInitParameter("resetEnable", "true");
- return servletRegistrationBean;
- }
-
- /**
- * Druid监控过滤器配置规则
- * ConditionalOnMissingBean 防止注册相同的bean
- *
- * @return filterFilterRegistrationBean
- */
- @Bean
- @ConditionalOnMissingBean
- public FilterRegistrationBean<Filter> filterRegistrationBean() {
- FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
- filterFilterRegistrationBean.setFilter(new WebStatFilter());
- // 添加过滤规则
- filterFilterRegistrationBean.addUrlPatterns("/*");
- // 添加不需要忽略的格式信息
- filterFilterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
- return filterFilterRegistrationBean;
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。