当前使用版本(必填,否则不予处理)

  • spring-boot@2.5.7
  • mybatis-plus-boot-starter@3.4.3.4
  • dubbo@2.7.8

该问题是如何引起的?(确定最新版也有问题再提!!!)

由于mybatis-plus-boot-starter引入了spring-boot-starter-jdbc依赖, 触发了springboot的org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitialization注解处理流程, 该注解会调用org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector#detect这个方法对beanClass进行比较,比较过程中会触发bean的earlyInit。从而造成reference bean的提前初始化,导致服务启动失败。

临时解决方案

exclude掉spring-boot-starter-jdbc的依赖。 我看了源码,这个jdbc依赖仅用于测试用例。是否可以更改这个依赖的作用域为test修复这个冲突?

重现步骤(如果有就写完整)

MyBatis-Plus mybatis-plus-boot-starter引入spring-boot-starter-jdbc导致dubbo的referenceBean初始化失败

报错信息

MyBatis-Plus mybatis-plus-boot-starter引入spring-boot-starter-jdbc导致dubbo的referenceBean初始化失败

Comment From: miemieYaho

不能,本项目就是操作jdbc