zoukankan      html  css  js  c++  java
  • druid和druid-spring-boot-starter 的区别

    今天建项目的时候,使用springboot整合druid的时候启动报错:

    springboot项目中提示报错Cannot resolve configuration property 'spring.datasource.xxxx'

    然后我就网上搜索资料,可以参考:

    https://www.cnblogs.com/dxiaodang/p/14571590.html

    主要原因还是要不要手动写配置类,spring boot 的使用 auto帮我们封装好了属性值

    描述如下:

      1. 作用是一样的,都是连接池提供连接,里边的配置参数都是一样的;
      2. druid-spring-boot-starter只是在druid基础上进行了一次封装,专门用来整合spring-boot项目;
        如果springboot项目想使用druid也是可以的,但是需要手动编写配置类并注入到bean中,并加载对应的配置参数;但是不建议,明明有现成封装好的jar,就直接使用就好了!!!

    所以我后面改成了使用druid-spring-boot-starter依赖。

    <!--改为stater的方式-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>${druid.version}</version>
    </dependency>

    并且在application.yml文件中配置如下内容:

    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
    #    driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test01
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
      druid:
        #   Druid数据源配置
        # 初始连接数
        initialSize: 5
        # 最小连接池数量
        minIdle: 10
        # 最大连接池数量
        maxActive: 20
        # 配置获取连接等待超时的时间
        maxWait: 60000
        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
        timeBetweenEvictionRunsMillis: 60000
        # 配置一个连接在池中最小生存的时间,单位是毫秒
        minEvictableIdleTimeMillis: 300000
        # 配置一个连接在池中最大生存的时间,单位是毫秒
        maxEvictableIdleTimeMillis: 900000
        # 配置检测连接是否有效
        validationQuery: SELECT 1
        #申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
        testWhileIdle: true
        #配置从连接池获取连接时,是否检查连接有效性,true每次都检查;false不检查。做了这个配置会降低性能。
        testOnBorrow: false
        #配置向连接池归还连接时,是否检查连接有效性,true每次都检查;false不检查。做了这个配置会降低性能。
        testOnReturn: false
        #打开PsCache,并且指定每个连接上PSCache的大小
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,log4j
        #合并多个DruidDatasource的监控数据
        useGlobalDataSourceStat: true
        #通过connectProperties属性来打开mergesql功能罗慢sQL记录
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500;

    这样就不需要单独对DruidDatasource写个配置类了。

  • 相关阅读:
    引入RabbitMQ后,如何保证全链路数据100%不丢
    使用logstash迁移elasticsearch
    内网代理转发工具
    MSSQL存储过程命令执行
    win10 家庭版升级专业版密钥
    clash TUN模式
    windows实战常用命令
    webshell之jsp免杀
    tmux的使用方法
    钓鱼邮件从入门到放弃
  • 原文地址:https://www.cnblogs.com/zhf123/p/15390075.html
Copyright © 2011-2022 走看看