今天弄个项目,使用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了呢??
麻烦各位帮忙解决一下,不知道什么原因。。。
Spring
Spring Boot
ICacheService 看这一个类, 有多少个实现! 说明Autowired by type时, 有多个Bean实现该接口
已经查出问题了,是因为@MapperScan指定的包范围太大,有重合而引起的