Spring boot2.0以上集成Druid连接池及监控信息配置

xiaoxiao2025-09-19  48

1. Springboot 2.0选择HikariCP作为默认数据库连接池

理由参考:

https://blog.csdn.net/user_regist/article/details/80659970

https://blog.csdn.net/zxl315/article/details/80420688?utm_source=blogxgwz0

2. 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

参考:https://blog.csdn.net/qq_31125793/article/details/51241943

本文是集成Druid连接池,数据库为mysql

pom文件添加druid的依赖:

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency>

application.properties配置文件添加配置项:

# 连接池druid配置 # 初始化连接数 spring.datasource.initialSize=5 # 最小空闲连接数 spring.datasource.minIdle=5 # 最大连接数 spring.datasource.maxActive=20 # 获取连接等待超时的时间 spring.datasource.maxWait=60000 # 间隔60秒执行一次连接回收器 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 5分钟内没有任何操作的空闲连接会被回收 spring.datasource.minEvictableIdleTimeMillis=300000 # 验证连接有效性的sql spring.datasource.validationQuery=SELECT 1 FROM DUAL # 空闲时校验,建议开启 spring.datasource.testWhileIdle=true # 使用中是否检验有效性,推荐关闭 spring.datasource.testOnBorrow=false # 归还连接时是否检验有效性,推荐关闭 spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=false # 配置监控统计拦截的过滤器,stat用于接收状态,wall用于防止sql注入,logback用于使用logback日志输出 spring.datasource.filters=stat,wall,logback # sql合并统计,打开mergeSql功能并设置慢sql的时间为 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000 # 合并多个DruidDataSource的监控数据 spring.datasource.useGlobalDataSourceStat=true

在启动类或自己新建配置类中,添加代码:

@Bean(destroyMethod = "close",initMethod = "init") @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDatasource() { DruidDataSource druidDataSource = new DruidDataSource(); return druidDataSource; } /** * 注册后台界面的Servlet bean, 用于显示后台界面 * @return */ @Bean public ServletRegistrationBean<StatViewServlet> druidStatViewServlet() { // 创建StatViewServlet, 映射到/druid/路径下 ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(), "/druid/*"); //添加初始化参数:initParams //白名单: servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. servletRegistrationBean.addInitParameter("deny","192.168.1.73"); //登录查看信息的账号密码. servletRegistrationBean.addInitParameter("loginUsername","admin"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } /** * 监听获取应用的数据,Filter用于收集数据, Servlet用于展现数据 * @return */ @Bean public FilterRegistrationBean<WebStatFilter> druidStatFilter() { FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<WebStatFilter>(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; }

注:@ConfigurationProperties注解可能提示需要添加依赖,添加即可(如果没添加的话)

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>

启动项目发现数据源已改变为druid:

然后访问后台监控页面:http://localhost:8083/druid/

输入刚才配置的用户名密码即可看到监控后台

 

                ---------------------------------------------欢迎关注公众号(生活不止有代码)-------------------------------------------------------

                                                                      

转载请注明原文地址: https://www.6miu.com/read-5036592.html

最新回复(0)