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

 更新时间:2020年07月15日 10:06:45   作者:code&&coder  
Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。这篇文章主要介绍了SpringBoot整合Druid数据库连接池的方法,需要的朋友可以参考下

一,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整合Druid数据库连接池的方法的文章就介绍到这了,更多相关SpringBoot整合Druid数据库连接池内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring中存取Bean的相关注解举例详解

    Spring中存取Bean的相关注解举例详解

    这篇文章主要给大家介绍了关于Spring中存取Bean的相关注解,在没有使用注解获取对象之前,我们需要在配置文件中通过添加bean来将对象存储到Spring容器中,这对于我们来说是比较麻烦的,需要的朋友可以参考下
    2023-10-10
  • springboot 使用clickhouse实时大数据分析引擎(使用方式)

    springboot 使用clickhouse实时大数据分析引擎(使用方式)

    这篇文章主要介绍了springboot 使用clickhouse实时大数据分析引擎的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-02-02
  • SpringSecurity跨域请求伪造(CSRF)的防护实现

    SpringSecurity跨域请求伪造(CSRF)的防护实现

    本文主要介绍了SpringSecurity跨域请求伪造(CSRF)的防护实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Java中增强for循环代码示例

    Java中增强for循环代码示例

    这篇文章主要给大家介绍了Java中增强for循环的相关资料,for/in循环就是JDK5.0中所谓的增强For循环,它能对数组和集合进行遍历,使用它会使用你的代码短小而精炼的多,需要的朋友可以参考下
    2023-10-10
  • springboot + swagger 实例代码

    springboot + swagger 实例代码

    本篇文章主要介绍了springboot + swagger 实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 使用Java动态创建Flowable会签模型的示例代码

    使用Java动态创建Flowable会签模型的示例代码

    动态创建流程模型,尤其是会签(Parallel Gateway)模型,是提升系统灵活性和响应速度的关键技术之一,本文将通过Java编程语言,深入探讨如何在运行时动态地创建包含会签环节的Flowable流程模型,需要的朋友可以参考下
    2024-05-05
  • 详解Spring关于@Resource注入为null解决办法

    详解Spring关于@Resource注入为null解决办法

    这篇文章主要介绍了详解Spring关于@Resource注入为null解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • java协程框架quasar和kotlin中的协程对比分析

    java协程框架quasar和kotlin中的协程对比分析

    这篇文章主要为大家介绍了java协程框架quasar和kotlin两个协程对比分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多基本
    2022-02-02
  • java实现数据结构单链表示例(java单链表)

    java实现数据结构单链表示例(java单链表)

    这篇文章主要介绍了java数据结构实现单链表示例,需要的朋友可以参考下
    2014-03-03
  • ElasticSearch突然采集不到日志问题解决分析

    ElasticSearch突然采集不到日志问题解决分析

    这篇文章主要为大家介绍了ElasticSearch突然采集不到日志问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论