目录
配置了Druid但无法启动
SpringBoot版本是3.2.5
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Druid版本是:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
配置文件中配置了使用Druid
datasource:
druid:
url: jdbc:mysql://localhost:3306/HelloSpring?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
username: root # mysql 登录用户名
password: 123456 # mysql 登录密码
driver-class-name: com.mysql.cj.jdbc.Driver # MySQL驱动,Java连接MySQL必需
启动失败,并且报错找不到datasource.url。
查看启动时的相关日志,发现Druid并没有配置成功,而是使用的默认的Hikari。
失败原因:
SpringBoot 3.2.5与druid-spring-boot-starter不兼容。
使用下面的版本解决问题。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.28</version>
</dependency>
BeanNotOfRequiredTypeException
报错
BeanNotOfRequiredTypeException: ddlApplicationRunner
expected: Runner
actual: NullBean
原因:
MyBatis-Plus 代码生成器里的 ddlApplicationRunner Bean 返回了 null,Spring Boot 3 不允许 → 启动直接失败
解决:
移除了这个依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
移除后仍然报相同的错误。
然后又修改了mybatis-plus-boot-starter版本,从3.5.3.1修改为3.5.5
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
</dependency>
问题解决了。
本质还是:SpringBoot 3.2.5 与依赖库的版本兼容问题。
行者常至,为者常成!