springboot使用dynamic-datasource和druid配置多数据库连接及druid监控

一、首先需要引入的jar包

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
	<version>3.2.0</version>
</dependency>
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.6</version>
</dependency>

二、spring yaml的配置,注意druid的缩进,错了不起作用

spring:
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    dynamic:
      primary: postgresql  # 配置默认数据库
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        postgresql:
          url: jdbc:postgresql://127.0.0.1:5432/postgres?stringtype=unspecified
          username: postgres
          password: admin123
          driver-class-name: org.postgresql.Driver
          druid:
            initial-size: 10
            min-idle: 10
            max-active: 500
            max-wait: 60000
            time-between-eviction-runs-millis: 60000
            min-evictable-idle-time-millis: 300000
        clickhouse:
          url: jdbc:clickhouse://127.0.0.1:8123/default
          username: default
          password: admin123
          driver-class-name: ru.yandex.clickhouse.ClickHouseDriver
          druid:
            initial-size: 50
            min-idle: 50
            max-active: 2000
            max-wait: 120000
            time-between-eviction-runs-millis: 120000
            min-evictable-idle-time-millis: 600000
      druid:
        test-while-idle: false
        test-on-borrow: false
        test-on-return: false
        pool-prepared-statements: true
        filters: stat,wall,log4j2
    druid:
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: /druid/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: false
        login-username: admin
        login-password: admin123
        # StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数
        # deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问
        # 配置的格式
        # <IP>
        # 或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24
        # 24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配,不支持IPV6。
        allow:
        deny:

三、下面是druid的其它配置参数,可以参考

spring:
  # 配置数据库信息
  datasource:
    # 数据源配置
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    # druid相关配置
    druid:
      # 初始化 最小 最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置多个英文逗号分隔
      filters: stat,wall
      # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
      # 是否启用StatFilter默认值true
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: false
        session-stat-max-count: 1000
        principal-cookie-name: admin
        principal-session-name: admin
        profile-enable: true
      # 根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html
      # http://loacalhsot:8081/druid
      stat-view-servlet:
        url-pattern: /druid/*  # 监控页面访问路径
        # 允许清空统计数据
        reset-enable: true
        login-username: admin
        login-password: 123456
        # StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数
        # deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问
        # 配置的格式
          # <IP>
          # 或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24
          # 24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配,不支持IPV6。
        allow:
        deny:

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>