Day56——SpringBoot2.x整合Druid&配置数据源监控

一. 回顾

前面学习了Day55——SpringBoot2.x版本的jdbc&自动配置原理,今天来学习整合Druid以及配置数据源监控。

二. 遇到的问题

情况:笔者使用的SpringBoot2.3版本,按照b站的雷神视频搭建工程,但是搭建好后,运行确实没有报错,但是druid的后台页面某些专栏是什么都没有的,而雷神搭好后运行是有的,如下:
在这里插入图片描述
为了解决这个问题,调整了很多参数以及配置,还有切换依赖的版本,都没有办法解决。

因此笔者使用另一个依赖druid-spring-boot-starter来整合Druid。详细步骤往下看

三. 整合Druid&配置数据源监控

首先给出druid-spring-boot-starter官方文档地址

鉴于文章篇幅要求,这里只给出最最最最关键的代码以及核心步骤,后面会给出详细配置代码。

3.1 引入依赖

首先引入依赖,如下:

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

网上有的人说高版本druid-starter与MySQL驱动版本不匹配,导致访问不了druid后台页面,需要改成1.1.10。大家酌情参考修改版本,如果修改后仍无法访问,那么就不是版本问题了。

3.2 配置Druid

配置Druid,如下:

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://192.168.32.103:3306/jdbc
    driver-class-name: com.mysql.cj.jdbc.Driver
    #配置druid数据源,因为阿里有整套的解决方案
    type: com.alibaba.druid.pool.DruidDataSource

    druid:
      initial-size: 5
      max-active: 20
      min-idle: 5
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      validation-query: SELECT 1 FROM DUAL
      test-on-borrow: false
      test-on-return: false
      test-while-idle: true
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      filter:
        stat:
          enabled: true
          db-type: mysql
          log-slow-sql: true
          slow-sql-millis: 2000
        wall:
          enabled: true
        slf4j:
          enabled: true
      keep-alive: true
      # 监控过滤器
      web-stat-filter:
        enabled: true
        exclusions:
          - "*.js"
          - "*.gif"
          - "*.jpg"
          - "*.png"
          - "*.css"
          - "*.ico"
          - "/druid/*"
      #exclusions可以是list格式配置,也可以是String格式
      #        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
      # druid 监控页面
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: false
        login-username: admin
        login-password: 123456
        #拒绝本机连接
        deny: 192.168.32.103

对上面的配置文件做解释,如下:

  1. 关于这些 username、password、url、driver-class-name,既可以配置在spring.datasource下,也可以配置在spring.datasource.druid。配置在druid下的好处是,配置多数据源时可以简化某些操作。上面的url属性中我使用的是docker中的mysql容器地址,大家自行修改为自己的
  2. filter属性必须配置stat、wall、slf4j,druid后台的某些功能才会正常,否则会缺少某些东西
  3. stat-view-servlet必须配置enabled: true,否则访问不了首页。如果配置了,仍访问不了,查看配置的格式是否正确,比如是否与其他属性在同一级别,与上层属性比较是否有缩进2个空格。99%都是格式出现问题
  4. deny、allow可配可不配
  5. exclusions属性既可以使用list格式配置,也可以使用String格式配置(前提是使用双引号将内容括起来)

3.3 配置DruidDataSource

使用druid-starter依赖来配置,无需写配置类注册那些WebStatFilterStatViewServlet,但仍需要注册DruidDataSource,代码如下:

@Configuration
public class DruidConfig {

    @Primary
    @Bean
    @ConfigurationProperties("spring.datasource.druid")
    public DruidDataSource dataSource(){
        return DruidDataSourceBuilder.create().build();
    }
}

3.4 测试

如果要测试,则可以使用下面的代码(前提是要创建好表):

@Controller
public class HelloController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @ResponseBody
    @GetMapping("/query")
    public Map<String, Object> map(){
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from department");
        return list.get(0);
    }
}

测试效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值