No unique bean of type [com.ufida.dao.BaseDao]

1260 ワード

Error creating bean with name 'xxxServiceImpl': Injection of resource methods failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.ufida.dao.BaseDao] is defined: expected single matching bean but found 40

エラー分析:springがbeanを組み立てるときに、複数のクラスに一致します.Dao層の実装クラスはbaseDaoというエラーをjdk 1で継承しているからである.6は現れず、jdk 1にアップグレードする.8後に現れます.解決:1、xxxDaoImpl注記に名前を追加する:
 :
@Repository("xxxDao")
public class XxxDaoImpl extends BaseDaoImpl implements XxxDao {
 :
@Repository
public class XxxDaoImpl extends BaseDaoImpl implements XxxDao {

2、setBaseDao()メソッドの注記にname属性を指定する
 :
@Service
public class XxxServiceImpl extends BaseServiceImpl implements XxxService {
    
    @Resource(name="viewProductDao")
    public void setBaseDao(ViewProductDao viewProductDao) {
        super.setBaseDao(viewProductDao);
    }
 :
@Service
public class XxxServiceImpl extends BaseServiceImpl implements XxxService {
    
    @Resource
    public void setBaseDao(ViewProductDao viewProductDao) {
        super.setBaseDao(viewProductDao);
    }