该配置项的目的,就是如果当前项目中存在同名的bean,后定义的bean会覆盖先定义的。

报错信息表明,在声明 org.apache.shardingsphere.shardingjdbc.spring.boot 包下的

SpringBootConfiguration中的dataSource这个bean时出错, 原因是有一个同名的 dataSource 的bean在com.alibaba.druid.spring.boot.autoconfigure包下的DruidDataSourceAutoConfigure类加载时已经声明了。

而我们需要用到的是 shardingjdbc包下的dataSource,所以我们需要配置上述属性,让后加载的覆盖先加载的。

解决办法

在application.yml中增加配置

spring:main:allow-bean-definition-overriding: true