11分钟学会SpringBoot配置Druid数据源


11分钟学会SpringBoot配置Druid数据源

每个人都必须发展两种重要的能力适应改变与动荡的能力以及为长期目标延缓享乐的能力

一、是什么?

  • Druid是阿里开发的一款数据库连接池。

  • Druid是一个JDBC组件,它包括三部分:

    • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系;
    • DruidDataSource 高效可管理的数据库连接池;
    • SQLParser ;
  • Druid可以通过内置提供的功能强大的StatFilter插件进行详细统计SQL的执行性能;

  • Druid提供了一个高效、功能强大、可扩展性好的数据库连接池以用来替换DBCP和C3P0方案;

  • DruidDriver和DruidDataSource都支持PasswordCallback,解决数据库密码加密安全问题。

二、如何用?

1.导入druid数据源依赖

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

2.配置yml

spring:
  datasource:
#   数据源基本配置
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///datatest?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    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
#   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙  
    filters: stat,wall
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true  
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3.编写配置类

    package com.atguigu.springboot.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.Arrays;
    import java.util.HashMap;
    import java.util.Map;

    @Configuration
    public class druidConfig {

        @ConfigurationProperties(prefix = "spring.datasource")
        @Bean
        public DataSource druid(){
            return  new DruidDataSource();
        }

        //配置Druid的监控
        //1、配置一个管理后台的Servlet
        @Bean
        public ServletRegistrationBean statViewServlet(){
            ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            Map<String,String> initParams = new HashMap<>();

            initParams.put("loginUsername","admin"); //賬戶
            initParams.put("loginPassword","123456"); //密碼
            initParams.put("allow","");//默认就是允许所有访问
            initParams.put("deny","192.168.10.22"); //拒绝访问

            bean.setInitParameters(initParams);
            return bean;
        }

        //2、配置一个web监控的filter
        @Bean
        public FilterRegistrationBean webStatFilter(){
            FilterRegistrationBean bean = new FilterRegistrationBean();
            bean.setFilter(new WebStatFilter());

            Map<String,String> initParams = new HashMap<>();
            initParams.put("exclusions","*.js,*.css,/druid/*");

            bean.setInitParameters(initParams);

            bean.setUrlPatterns(Arrays.asList("/*"));

            return  bean;
        }
    }

4.测试

访问 http://localhost/druid/

出现druid的登录界面即为配置成功、


文章作者: Athink
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Athink !
评论
  目录