BaseDao有三个实现了,prodectDao, stockDao, userDao,你要指定是哪一个才行。你哪里使用BaseDao了,可以这样指定 :
@Resource("prodectDao")
BaseDao baseDao;

解决方案 »

  1.   

    楼上正解,你的baseDao有多个实现,代码不知道你要用哪一个,所以你需要手动指定才行
      

  2.   

    我的BaseDao 肯定也是在BaseService使用的
    问题说以public class BaseServiceImpl<E> implements BaseService<E>{

    private BaseDao<E> baseDao;
    //省略get set}
    想你这么说继承BaseService的具体ServiceImpl就需要注入baseDao了
    类似这样public class UserServiceImpl extends BaseServiceImpl<User> implements UserService {
       private UserDao userDao;

    public UserDao getUserDao() {
    return userDao;
    }
    @Autowired
    public void setUserDao(@Qualifier("userDao")UserDao userDao) {
    super.setBaseDao(userDao);
    this.userDao = userDao;
    }
    }
    这样如果一个具体的额Service需要同时引用两个dao拿又报错了,所以觉得行不通
      

  3.   

    从报错信息来看,是找到了3个相同的类型的Dao 楼主可以在注入spring的时候把@Autowired全部换成@Resource