私はspring autowire機能に問題があります。これは同じタイプの2つのBeanを見つけましたが、実際にはこのBeanが実装している1つのBeanとインタフェースしかありません。私が手にこの設定でspring autowire 2 beansが例外を発見しました
package xxx.vs.dao.abs.yyy;
public interface IntermedDao extends GenericDao<Intermed> {
// methods here
}
package xxx.vs.dao.yyy;
import org.springframework.stereotype.Repository;
@Repository
public class IntermedDaoImpl extends GenericInboundDaoImpl<Intermed> implements IntermedDao {
// methods here
}
package xxx.vs.services.yyy;
@Service
@Transactional
public class IntermedServiceImpl implements IntermedService {
@Autowired
IntermedDao dao;
public IntermedDao getDao() {
return dao;
}
public void setDao(IntermedDao dao) {
this.dao = dao;
}
}
:
<context:component-scan base-package="xxx.vs.services"/>
<context:component-scan base-package="xxx.vs.dao"/>
<context:annotation-config/>
<bean id="intermedDao" class="xxx.vs.dao.yyy.IntermedDaoImpl" />
と:applicationContext.xmlをで
私はこれらの行を持っているjava.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'intermedServiceImpl':
Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire field: xxx.vs.dao.abs.yyy.IntermedDao xxx.vs.services.yyy.IntermedServiceImpl.dao; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:No unique bean of type [xxx.vs.dao.abs.yyy.AgentDao] is defined: expected single matching bean but found 2: [intermedDaoImpl, intermedDao]
私のDAOのクラスが実装しているインターフェイスを含むパッケージをスキャンするので、これは起こりますか?
確かに、私はxml beanを削除した後はすべてOKでした。ありがとう。 –