springboot集成阿里Druid

目录

一步到位springboot目录
gitee:https://gitee.com/chaitou/leilema.git

前言

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

-- alibaba官方

划下重点,"最好"的数据库连接池,还没有带之一,你说吊不吊。集成上去能提升你的数据库访问效率

同时Druid还提供了强大的监控功能:数据源Url请求sql执行效率Web并发等等都能监控。Druid实在是排查慢sql、优化性能、监控项目居家必备良药!
Druid

集成Druid

集成分3步!1. 导入依赖、2. 写入配置、3. 使用

一、导入依赖


    <properties>
    	<!-- 就用最新版好了 -->
        <druid-version>RELEASE</druid-version>
    </properties>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid-version}</version>
        </dependency>

二、配置

.yml文件的数据源下面配置上druid的参数

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://148.70.139.121:3306/leilema?useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: leilema
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 下面为连接池的补充设置,应用到上面所有数据源中
      # 初始化连接数大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 30000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 300000
      # 验证数据库连接的有效性
      validation-query: select '1' from dual
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      pool-prepared-statements: true
      max-open-prepared-statements: 20
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filters: stat,wall,slf4j

最后再新建一个DruidConfiguration配置类,其实也可以写成配置文件的,都一样的。同时我们设置一下打开druid监控页面的账号密码,以及页面地址

@Configuration
public class DruidConfiguration {

    /**
     * 配置监控服务器
     *
     * @return 返回监控注册的servlet对象
     */
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 添加IP白名单
        // servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
        // servletRegistrationBean.addInitParameter("deny", "192.168.25.123");
        // 添加控制台管理用户
        servletRegistrationBean.addInitParameter("loginUsername", "leilema");
        servletRegistrationBean.addInitParameter("loginPassword", "bugpool");
        // 是否能够重置数据
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    /**
     * 配置服务过滤器
     *
     * @return 返回过滤器配置对象
     */
    @Bean
    public FilterRegistrationBean statFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        // 添加过滤规则
        filterRegistrationBean.addUrlPatterns("/*");
        // 忽略过滤格式
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");
        return filterRegistrationBean;
    }
}

“有读者可能会问,卧靠,这么复杂的配置,这都能写,也太牛逼了吧。还我我不行了”
好吧,这也是我baidu抄的,谁tm有事没事背配置啊!到baidu上撸一份,然后遇到需要定制化的配置就去alibaba官方源码项目地址上面看一下官方文档,改一改配置就成了…架构师其实也都是google出来的,不信你找你们公司架构师,让他手撸一份德鲁伊配置出来…

三、使用

使用就跟简单了,直接启动项目,访问项目路径/druid
druid
由于下节才讲到controller层,所以大家手头上还没有url请求可以发送,因此监控页面也是空的,那就先看一下我的截图吧。下节讲完controller层,可以发送几个请求,再过来看监控
druid监控

可监控类型

  1. 数据源
    显示当前项目下所有数据源,多数据源的项目才会用到。当然了,肯定不会显示密码

  2. SQL监控
    监控所有执行的sql语句,包括耗时,参数等等

  3. SQL防火墙
    druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

  4. Web应用
    可以看到目前运行的web程序的并发数,事务书等等详细信息

  5. URI监控
    可以监控到所有的请求路径的请求次数、请求时间等参数

  6. Session监控
    监控session状况,创建时间、最后活跃时间、请求次数、请求时间等参数

发布了58 篇原创文章 · 获赞 281 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/chaitoudaren/article/details/105609967