【发布时间】:2018-06-04 10:02:36
【问题描述】:
我有一个接口名称
public interface ScoreDao {
public int storeScore(OverallScore overallScore);
public void storeIndividualScore(ScoreTO scoreTO);
}
实现类如下
@Repository("scoreDao")
public class ScoreDaoImpl implements ScoreDao {
@Override
public int storeScore(OverallScore overallScore) {
//Implementation
}
@Override
public void storeIndividualScore(ScoreTO scoreTO){
//Implementation
}
}
调用者正在使用如下服务
@Service("scoreService")
public class scoreServiceImpl implements IScoreService {
@Autowired
private ScoreDao scoreDao;
@Override
public int storeScore(OverallScore overallScore) {
return scoreDao.storeOverallScore(overallScore);
}
@Override
public void storeIndividualScore(ScoreTO scoreTO) {
scoreDao.storeIndividualScore(scoreTO);
}
}
我使用的是 spring 4.x,在部署时出现如下 bean 冲突错误。
引起:java.lang.RuntimeException: org.springframework.context.annotation.ConflictingBeanDefinitionException: bean 类 [ScoreDao] 的注解指定的 bean 名称“ScoreDao” 与现有的、不兼容的同名 bean 定义冲突 和类 [ScoreDaoImpl]
当我将接口名称更改为 IScoreDao 时,它正在工作。是不是因为服务名@Repository("scoreDao") 和接口名一样?
【问题讨论】:
标签: java spring spring-annotations