druid-spring-boot-3-starter目前最新版本是1.2.20,虽然适配了SpringBoot3,但缺少自动装配的配置文件,会导致加载时报加载驱动异常。- <dependency>
- <groupId>com.alibaba</groupId>
- druid-spring-boot-3-starter</artifactId>
- <version>1.2.20</version>
- </dependency>
复制代码 解决方案
需要手动在resources目录下创建META-INF/spring/目录,并且在META-INF/spring/创建 org.springframework.boot.autoconfigure.AutoConfiguration.imports,
文件中添加如下内容:- com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure
复制代码 application.yaml
添加druid连接池配置项
- spring:
- datasource:
- # 连接池类型
- type: com.alibaba.druid.pool.DruidDataSource
- # Druid的其他属性配置 springboot3整合情况下,数据库连接信息必须在Druid属性下!
- druid:
- url: jdbc:mysql://localhost:3306/day01
- username: root
- password: root
- driver-class-name: com.mysql.cj.jdbc.Driver
- # 初始化时建立物理连接的个数
- initial-size: 5
- # 连接池的最小空闲数量
- min-idle: 5
- # 连接池最大连接数量
- max-active: 20
- # 获取连接时最大等待时间,单位毫秒
- max-wait: 60000
- # 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
- test-while-idle: true
- # 既作为检测的间隔时间又作为testWhileIdel执行的依据
- time-between-eviction-runs-millis: 60000
- # 销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接(配置连接在池中的最小生存时间)
- min-evictable-idle-time-millis: 30000
- # 用来检测数据库连接是否有效的sql 必须是一个查询语句(oracle中为 select 1 from dual)
- validation-query: select 1
- # 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
- test-on-borrow: false
- # 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
- test-on-return: false
- # 是否缓存preparedStatement, 也就是PSCache,PSCache对支持游标的数据库性能提升巨大,比如说oracle,在mysql下建议关闭。
- pool-prepared-statements: false
- # 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
- max-pool-prepared-statement-per-connection-size: -1
- # 合并多个DruidDataSource的监控数据
- use-global-data-source-stat: true
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |