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

3.4.3

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

https://github.com/baomidou/mybatis-plus/blob/bcba617a8ad969667150b0ad678c4112bff7b931/mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/IdentifierGeneratorAutoConfiguration.java#L32-L49

45 行构造函数在多数据源分别使用不同的 mybatis 配置的情况下, 无法判断注入哪个bean导致启动失败.

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

再定义一个mybatis 配置

@Configuration
@ConfigurationProperties(prefix = "mybatis-plus.primary")
public final class PrimaryDbProperties extends MybatisPlusProperties {
}

报错信息


***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 1 of constructor in com.baomidou.mybatisplus.autoconfigure.IdentifierGeneratorAutoConfiguration$InetUtilsAutoConfig required a single bean, but 2 were found:
    - mybatis-plus.xxxxx.PrimaryDbProperties: defined in null
    - mybatis-plus-com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties: defined in null

Comment From: qmdx

to https://github.com/baomidou/dynamic-datasource-spring-boot-starter

Comment From: timandy

我贴一下解决方案吧, 如果不想用那个多数据源包, 使项目包体积变大. 只需要添加以下的类

/**
 * 排除默认配置, 以修复启动报错
 */
@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration(exclude = {MybatisPlusAutoConfiguration.class, IdentifierGeneratorAutoConfiguration.class})
public class FixMybatisPlusAutoConfiguration {
}