今天在读源码的时候为了验证然后自己写了一个demo测试,但是在引入Druid-spring-boot-starter的时候发现并没有加载自动配置文件。
先说下项目环境,spring-boot3.2,然后按照官网引入的是如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
然后发现启动直接报错,datasource启动失败,找不到url,连不上数据库,一开始我以为是我配置错误,我专门检查了一次之后发现不是。于是打断点查看,发现直接跳到了DataSourceAutoConfiguraion的自动配置,我使用的druid相关的配置,没有配spring的配置,所以会启动失败。
但是为啥会失败,感觉就是spring的SPI机制没有读到druid的自动配置文件,查了一下springboot3之前和之后配置方式有区别,然后我看了下这个配置还是3之前的方式。
对于springboot3.0之后如果要用druid-spring-boot-starter,需要导入下面的包:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
专门查了下1.2.18版本才开始引入3.0支持的,所以你如果是springboot3.0至少要导入1.2.18版本之后才行。官方文档看着是太久没更新了,所以不要太信官方文档,很多时候容易被坑。