SpringBoot启动报Bean already defined with the same name

问题描述

给SpringBoot项目配置了日志文件后。发现warn日志中总是报如下错误:
在这里插入图片描述
查资料,发现有的同学说是因为XXMapper类增加了@Mapper注解。
例如:
在这里插入图片描述
而且,SpringBoot的启动文件中也又 @MapperScan
在这里插入图片描述

那么,解决办法如下两种方案:

1)删除所有xxxMapper.java文件中的@Mapper注解,只保留启动类中的@MapperScan。
2)与1相反,删除启动类中的@MapperScan。只保留xxxMapper.java文件中的。

然鹅,我的Mapper文件并没有这样的注解。
然后,再联想到我的项目中启动类在多个微服务中都有。
A微服务启动文件中的@MapperScan配置如下:

@MapperScan("com.a.b.c.**.dao")

B微服务引用了A微服务,且启动类文件配置的@MapperScan如下:

@MapperScan("com.a.b.**.dao")

很显然,B中的@MapperScan包含了A中的@MapperScan。

解决方案:
删除其中一个呗。哈哈 ^_^

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐