+
 新版

spring boot 2.2.2 自动注入的问题

迷失烟雾 发布于 2019/12/25 14:53
阅读 668
收藏 1

今天弄个项目,使用spring boot启动时提示这个错误:

Field cacheService in tv.xxxx.ReportTaskScheduler required a single bean, but 2 were found:
    - databaseCacheServiceImpl: defined in file [xxx\service\impl\DatabaseCacheServiceImpl.class]
    - ICacheService: defined in file [xxx\service\ICacheService.class]

ICacheService是接口(interface)

DatabaseCacheServiceImpl是ICacheService的实现类

在ReportTaskScheduler类里使用自动注入

    @Autowired
    private ICacheService cacheService;
 

为什么会有两个呢,而且ICacheService是个接口,怎么成为bean了呢??

麻烦各位帮忙解决一下,不知道什么原因。。。

加载中
0
f
freezingsky

ICacheService  看这一个类, 有多少个实现! 说明Autowired by type时, 有多个Bean实现该接口

迷失烟雾
迷失烟雾
一个实现,日志已经说明了databaseCacheServiceImpl和ICacheService,很是不明白为啥ICacheService也包含在bean中,这个是接口,我再降低spring boot版本,看看是否也是同样的问题
0
迷失烟雾
迷失烟雾

已经查出问题了,是因为@MapperScan指定的包范围太大,有重合而引起的

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部