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

所属分类: 软件编程 / java 阅读数: 64
收藏 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,需要在配置类中添加白名单

在这里插入图片描述

监控界面

在这里插入图片描述

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

SpringBoot中使用Ehcache的详细教程

EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。这篇文章主要介绍了SpringBoot中使用Ehcache的相关知识,需要的朋友可以参考下
收藏 0 赞 0 分享

在idea 中添加和删除模块Module操作

这篇文章主要介绍了在idea 中添加和删除模块Module操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java spring整合junit操作(有详细的分析过程)

这篇文章主要介绍了java spring整合junit操作(有详细的分析过程),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解JAVA 弱引用

这篇文章主要介绍了 JAVA 弱引用的相关资料,帮助大家更好的理解和学习java引用对象,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

深入了解JAVA 虚引用

这篇文章主要介绍了JAVA 虚引用的相关资料,帮助大家更好的理解和学习JAVA,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解JAVA 强引用

这篇文章主要介绍了JAVA 强引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

java中的按位与(&)用法说明

这篇文章主要介绍了java中的按位与(&)用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

深入了解JAVA 软引用

这篇文章主要介绍了JAVA 软引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

利用MyBatis实现条件查询的方法汇总

这篇文章主要给大家介绍了关于利用MyBatis实现条件查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MyBatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound

这篇文章主要介绍了Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.Pa
收藏 0 赞 0 分享
查看更多