此时我把mybatis的依赖注释掉发现了问题解决,也就是问题原因是mybatis-spring的版本问题
但是,mybatis-spring的版本也就到3.0.3,我用的是3.0.0,也不低
后面上网发现问题
mybatis-plus-spring-boot3-starter的版本是3.5.5,依赖的是
所以如果不注释mybatis-spring的依赖,只需要把这个依赖的版本升到3.0.3就可以了
网上找到的根本原因
旧版本的mybatis-spring版本ClassPathMapperScanner#processBeanDefinitions
方法里将 BeanClassName
赋值给 String 变量
并将 beanClassName
赋值给 factoryBeanObjectType
但是在 Spring Boot 3.2 版本中FactoryBeanRegistrySupport#getTypeForFactoryBeanFromAttributes
方法已变更,如果 factoryBeanObjectType
不是 ResolvableType 或 Class 类型会抛出 IllegalArgumentException
异常。
此时因为 factoryBeanObjectType
是 String 类型,不符合条件而抛出异常。