温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot如何整合Druid数据库连接池

发布时间:2020-07-16 15:32:19 来源:亿速云 阅读:200 作者:小猪 栏目:开发技术

这篇文章主要讲解了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发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码

项目配置

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&#63;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数据库连接池有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI