SpringBoot整合Druid数据库连接池的方法

所属分类: 软件编程 / java 阅读数: 57
收藏 0 赞 0 分享

一,Druid是什么?

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

二, 在哪里下载druid

maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/

三, 怎么获取Druid的源码

Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码

SpringBoot整合Druid数据库连接池的方法。

项目配置

pom.xml

 <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.10</version>
  </dependency>
  <!--自启动Druid管理后台-->
  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.10</version>
  </dependency>

application.yml

server:
 port: 8080

spring:
 datasource:
 username: root
 password: root
 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
 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 FROM DUAL
 testWhileIdle: true
 testOnBorrow: false
 testOnReturn: false
 poolPreparedStatements: true
 maxPoolPreparedStatementPerConnectionSize: 25
 filters: stat,wall,slf4j
 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
 useGlobalDataSourceStat: true

 cache:
 type: redis
 redis:
 host: 127.0.0.1
 port: 6379
 password:
 pool:
  max-active: 100
  max-idle: 10
  max-wait: 100000
 lettuce:
  shutdown-timeout: 0
 timeout: 5000
 database: 0

thymeleaf:
 cache: false;

mybatis:
 mapper-locations: classpath:zhw.example.zhw.loginModule.loginDao/*.xml

配置JdbcConfig

package zhw.example.zhw.loginModule.config;

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.Collections;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class JdbcConfig {
 @ConfigurationProperties(prefix = "spring.datasource")
 @Bean
 public DataSource dataSource(){
  return new DruidDataSource();
 }

 /**
  * 配置Druid监控
  *
  * @return StatViewServlet
  */
 @Bean
 public ServletRegistrationBean servletRegistrationBean() {
  ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
  Map<String, String> map = new HashMap<>();
  //访问的用户名密码
  map.put(StatViewServlet.PARAM_NAME_USERNAME, "root");
  map.put(StatViewServlet.PARAM_NAME_PASSWORD, "root");
  //允许访问的ip,默认是所有ip
  map.put(StatViewServlet.PARAM_NAME_ALLOW, "");
  //禁止访问的ip
  map.put(StatViewServlet.PARAM_NAME_DENY, "192.168.1.1");
  bean.setInitParameters(map);
  return bean;
 }

 /**
  * 配置一个监控的filter
  *
  * @return WebStatFilter
  */
 @Bean
 public FilterRegistrationBean filterRegistrationBean() {
  FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>();
  bean.setFilter(new WebStatFilter());
  Map<String, String> map = new HashMap<>();
  //移除这些监听
  map.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*,*.gif,*.jpg,*.png");
  bean.setInitParameters(map);
  //拦截所有请求,全部都要走druid监听
  bean.setUrlPatterns(Collections.singletonList("/*"));
  return bean;
 }

}

测试配置url白名单

如果工程中配置了Apache Shiro,需要在配置类中添加白名单

在这里插入图片描述

监控界面

在这里插入图片描述

更多精彩内容其他人还在看

Java输入输出流复制文件所用时间对比

这篇文章主要介绍了Java输入输出流复制文件所用时间对比的相关资料,非常不错,具有参考解决价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程中start和run方法全面解析

这篇文章主要介绍了Java线程中start和run方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的JSON处理器fastjson使用方法详解

下面小编就为大家带来一篇Java的JSON处理器fastjson使用方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Java 二维码,QR码,J4L-QRCode 的资料整理

本文主要介绍Java 中二维码,QR码,J4L-QRCode,这里整理了详细的资料供大家学习参考关于二维码的知识,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

java哈夫曼树实例代码

这篇文章主要为大家介绍了java哈夫曼树实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android读取本地或网络图片并转换为Bitmap

这篇文章主要为大家详细介绍了Android读取本地或网络图片,并转换为Bitmap,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java日期时间操作的方法

这篇文章主要为大家详细介绍了Java日期时间操作的一些方法,获得Calendar,定义日期/时间的格式等,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java 获取路径的各种方法(总结)

下面小编就为大家带来一篇java 获取路径的各种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java数据结构与算法之奇偶排序算法完整示例

这篇文章主要介绍了java数据结构与算法之奇偶排序算法,较为详细的分析了奇偶算法的原理并结合完整示例形式给出了实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

java数据结构与算法之双向循环队列的数组实现方法

这篇文章主要介绍了java数据结构与算法之双向循环队列的数组实现方法,结合实例形式分析了双向循环队列的原理与数组实现技巧,并附带说明了该算法的用途,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多