• Spring Boot 使用阿里巴巴 Druid 数据源


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

    1、引入依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>

    2、配置数据源的基本参数

    server:
      port: 8771
    
    #Spring
    spring:
      datasource:
        username: dev
        password: 123456
        url: jdbc:mysql://localhost:3306/htcpp?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          #最大活跃数
          max-active: 20
          #初始化数量
          initial-size: 1
          #最大连接等待超时时间
          max-wait: 60000
          min-idle: 1
          #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          time-between-eviction-runs-millis: 60000
          #配置一个连接在池中最小生存的时间,单位是毫秒
          min-evictable-idle-time-millis: 300000
          #打开PSCache,并且指定每个连接PSCache的大小
          pool-prepared-statements: true
          max-open-prepared-statements: 20
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          async-init: true
          #配置监控统计拦截的filters
          filters: stat,wall,log4j

    这样已经可以使用 Druid 了,如果还需要使用 Druid 的监控功能,还需要额外的配置。

    引入配置类,当然这些配置完全可以在配置文件中进行设置,可以自由选择是写在类中或者配置文件中。

    package com.haitaiinc.clinicpathservice.config;
    
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    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;
    
    @Configuration
    public class DruidConfiguration {
        @Bean
        public ServletRegistrationBean statViewServlet() {
            //创建servlet注册实体
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            //设置ip白名单
            servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
            //设置ip黑名单,如果allow与deny共同存在时,deny优先于allow
            servletRegistrationBean.addInitParameter("deny", "192.168.0.19");
            //设置控制台管理用户
            servletRegistrationBean.addInitParameter("loginUsername", "admin");
            servletRegistrationBean.addInitParameter("loginPassword", "123456");
            //是否可以重置数据
            servletRegistrationBean.addInitParameter("resetEnable", "false");
            return servletRegistrationBean;
        }
    
        @Bean
        public FilterRegistrationBean statFilter() {
            //创建过滤器
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
            //设置过滤器过滤路径
            filterRegistrationBean.addUrlPatterns("/*");
            //忽略过滤的形式
            filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
            return filterRegistrationBean;
        }
    }

    启动项目,如果项目启动报如下图所示的错误。

    那是由于 Spring Boot 和 Druid 版本不兼容导致的,只需要在启动类中增加一行注解。

    @EnableAutoConfiguration(exclude={DruidDataSourceAutoConfigure.class})

    输入地址:http://127.0.0.1:8771/druid/login.html,IP地址,端口号根据项目的实际情况来

    输入用户名,密码(配置文件中配置的用户名。密码)进行登录,登录后就可以看我们想看的信息。

    参考文章:

    https://blog.csdn.net/jay100500/article/details/81270298

    https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

  • 相关阅读:
    程序猿之歌
    How to solve the problem : &quot;You have been logged on with a temporary profile&quot;
    LeetCode Jump Game
    hdu 3496 Watch The Movie
    matlab矩阵内存预分配
    【Windows socket+IP+UDP+TCP】网络基础
    <html>
    行为类模式(十):模板方法(Template Method)
    行为类模式(九):策略(Strategy)
    行为类模式(八):状态(State)
  • 原文地址:https://www.cnblogs.com/jwen1994/p/12181390.html
Copyright © 2020-2023  润新知