`
周一Monday
  • 浏览: 346328 次
  • 来自: 北京
社区版块
存档分类
最新评论

No unique bean of type[....BaseDao] expected single matching bean but found..

 
阅读更多

异常信息:

 


Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'deptServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springfuncs.common.dao.BaseDao org.springfuncs.common.service.impl.BaseServiceImpl.dao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springfuncs.common.dao.BaseDao] is defined: expected single matching bean but found 2: [deptDaoImpl, empDaoImpl]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.springfuncs.test.SpringTest.main(SpringTest.java:12)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springfuncs.common.dao.BaseDao org.springfuncs.common.service.impl.BaseServiceImpl.dao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springfuncs.common.dao.BaseDao] is defined: expected single matching bean but found 2: [deptDaoImpl, empDaoImpl]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
... 13 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springfuncs.common.dao.BaseDao] is defined: expected single matching bean but found 2: [deptDaoImpl, empDaoImpl]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:800)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
... 15 more

解决方案:

 

@Transactional
public abstract class BaseServiceImpl<T> implements BaseService<T> {

 

private BaseDao<T> dao;

 

@Autowired
public void setDao(BaseDao<T> dao) {
this.dao = dao;
}

 

。。。。。。。。。。

 

 

--------------------------------

 

@Service
public class EmpServiceImpl extends BaseServiceImpl<Emp> implements EmpService {

 

@Override
@Autowired
@Qualifier("empDaoImpl")
public void setDao(BaseDao<Emp> dao) {
super.setDao(dao);
}

}

-----------------------------------

 

@Service
public class DeptServiceImpl extends BaseServiceImpl<Dept> implements DeptService {

@Override
@Autowired
@Qualifier("deptDaoImpl")
public void setDao(BaseDao<Dept> dao) {
super.setDao(dao);
}

 

}

 

附:晕。。。编辑器不好用。因为我是Win7系统吗?不是把。。。

所以,暂时先将代码贴上去把。。不美观啊。。。

分享到:
评论
4 楼 WanYanSir 2013-05-17  
No matching bean of type [com.spring.service.SysuserService] found for dependency????这是为什么???
3 楼 ITvision 2013-05-05  
尝试使用
@Service
public class EmpServiceImpl extends BaseServiceImpl<Emp> implements EmpService {

private DeptDao deptDao;
@resource
public void setDao(BaseDao<Dept> dao) {
super.setDao(dao);
this.deptDao=(DeptDao)dao;
}
}
2 楼 周一Monday 2012-11-07  
cs_dn007 写道
注意:[org.springfuncs.common.dao.BaseDao] is defined: expected single matching bean but found 2: [deptDaoImpl, empDaoImpl]
============================================
@Service的自动注入,与配置文件bean的配置重复了,spring容器有多个该bean
要么去掉配置,要么修改注解




你确定?

可能有时候写BaseService并不是最佳实践。
1 楼 cs_dn007 2012-11-07  
注意:[org.springfuncs.common.dao.BaseDao] is defined: expected single matching bean but found 2: [deptDaoImpl, empDaoImpl]
============================================
@Service的自动注入,与配置文件bean的配置重复了,spring容器有多个该bean
要么去掉配置,要么修改注解

相关推荐

    ibatis框架所需的jar包

    对于初学ibatis者来说,百度上都只提到用ibatis-2.3.0.677.jar,然后在读取配置文件的时候引用不到Resources和SqlMapClient,那么就是少了一个ibatis-sqlmap-2.3.4.726.jar,我把这两个jar同时上传了,希望可以帮助...

    NC65通过BaseDAO操作数据库

    NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...

    BEWINDOWEB#bewindoweb.github.io#00078-编写basedao的时候报错:java.lang.C

    编写basedao的时候报错:java.lang.Class cannot be cast to java.lang.reflect.Parameterized

    basedao_basedao数据库_

    1. `basedao.iml`: 这是IntelliJ IDEA项目文件,包含了项目的模块配置信息。 2. `pom.xml`: Maven项目配置文件,定义了项目的依赖、构建设置等。 - 在这个项目中,可能包含了JDBC驱动、Spring框架(如果使用)等...

    BaseDao.java

    BaseDao.javaBaseDao.java

    基于hibernate的baseDao

    **基于Hibernate的BaseDAO** 在Java企业级开发中,数据访问层(DAO,Data Access Object)是连接业务逻辑层和数据库的重要桥梁。BaseDAO是一种通用的设计模式,它封装了Hibernate框架的基本操作,使得业务逻辑层...

    SpringBoot_BaseDao.zip

    "SpringBoot_BaseDao.zip"这个压缩包文件显然与SpringBoot相关的数据库操作有关,特别是关于BaseDao的基础使用和实现。在Java开发中,Dao(Data Access Object)层是负责处理数据访问的,通常用于与数据库进行交互。...

    基于注解反射封装的BaseDao(支持一对多查询)

    throw new IllegalArgumentException("No @ManyToOne annotation found for field: " + associationField); } } private Field getAssociationField(Class&lt;?&gt; clazz, String fieldName) { try { return clazz...

    常用的BaseDAO及其实现

    "常用的BaseDAO及其实现" BaseDAO是Java中一种常用的数据访问对象(DAO),它提供了统一的数据访问接口,封装了数据访问的基本操作。BaseDAO通常是通过继承HibernateDaoSupport类实现的。 BaseDAO的主要功能包括:...

    java BaseDao

    一个简单的BaseDao.java文件可能包含以下方法: 1. **插入(Insert)**:使用JDBC的PreparedStatement或MyBatis的SqlSession插入数据。 ```java public int insert(T entity) { // 创建SQL语句 String sql = ...

    BaseDao.java,DaoUtil.java

    在Java编程语言中,`BaseDao.java` 和 `DaoUtil.java` 文件通常包含了与数据库交互的核心逻辑,特别是针对关系型数据库如MySQL。这两个文件中的类和方法是基于JDBC(Java Database Connectivity)API实现的,这是一...

    dbutils封装ORM 实现BaseDAO

    `BaseDAO` 的封装则是一种常见的设计模式,用于简化数据访问对象(DAO)的实现,使得业务代码更加简洁、可维护。 `dbutils` 主要包含以下几个核心概念和功能: 1. **QueryRunner**: QueryRunner类是dbutils的主要...

    Java反射技术的一般应用

    其中,com.jb.arklis.app.DemoApplication类利用反射技术可以观察任何非静态类(比如java.lang.String, javax.swing.JFrame等类和自定义的类,比如com.jb.arklis.dao.BaseDAO)的普通方法、构造方法以公有属性,是一...

    Java反射技术的一般应用(放低分数供大家学习)

    其中,com.jb.arklis.app.DemoApplication类利用反射技术可以观察任何非静态类(比如java.lang.String, javax.swing.JFrame等类和自定义的类,比如com.jb.arklis.dao.BaseDAO)的普通方法、构造方法以公有属性,是一...

    BaseDAO.js

    《BaseDAO.js——深入解析JavaScript中的数据库访问对象基础框架》 在JavaScript开发中,数据库访问对象(DAO,Database Access Object)是一种常见的设计模式,用于封装对数据库的操作,从而实现业务逻辑与数据...

    SSH集成查询分页处理BaseDao

    在标题提到的"SSH集成查询分页处理BaseDao"中,我们主要关注的是如何在SSH框架下实现数据的分页查询。 分页是大型Web应用中必不可少的功能,它能够帮助用户更有效地浏览和管理大量数据。在这个场景中,"BaseDao...

    BaseDao用到的jar包

    该资源是BaseDao用到的包: c3p0-0.9.2-pre1.jar commons-dbutils-1.4.jar commons-logging-1.1.1.jar itcast-tools-1.4.2.jar mchange-commons-0.2.jar mysql-connector-java-5.1.28-bin.jar

    基于SpringJDBC的BaseDAO

    ### 基于Spring JDBC的BaseDAO实现与应用 #### 概述 在Java开发领域,尤其是企业级应用开发中,持久层框架是至关重要的组件之一。Spring框架提供了多种方式来处理数据库操作,其中Spring JDBC模块是轻量级且功能...

    hibernate>>BaseDAO

    `BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象(Data Access Object)的基础类,用于封装对数据库的通用操作。现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是...

Global site tag (gtag.js) - Google Analytics