今天建项目的时候,使用springboot整合druid的时候启动报错:
springboot项目中提示报错Cannot resolve configuration property 'spring.datasource.xxxx'
然后我就网上搜索资料,可以参考:
https://www.cnblogs.com/dxiaodang/p/14571590.html
主要原因还是要不要手动写配置类,spring boot 的使用 auto帮我们封装好了属性值
描述如下:
- 作用是一样的,都是连接池提供连接,里边的配置参数都是一样的;
- 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写个配置类了。