AbstractTransactionalSpringContextTests 测试不能通过
但是继承TestCase自己取得Bean的时候就能通过,
是注入有问题还是怎么回事?报如下错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.sinosoft.ump.test.Test': Unsatisfied dependency expressed through bean property 'addrService': Set this property value or disable dependency checking for this bean.
下面是测试类:
public class Test extends AbstractTransactionalSpringContextTests {
private IBdAddressDAO addrDAO; @Override
protected String[] getConfigLocations() {
// TODO Auto-generated method stub
return new String[] { "file:Web/WEB-INF/config-sqlserver.xml","file:Web/WEB-INF/config-beans.xml" };
} public IBdAddressDAO getAddrDAO() {
return addrDAO;
} public void setAddrDAO(IBdAddressDAO addrDAO) {
this.addrDAO = addrDAO;
} public void addCreate() {
for(int i=0;i<20;i++){
Addresses addr=new Addresses();
addr.setName("张"+"-"+i);
try {
addrDAO.create(addr);
} catch (DAOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
}

解决方案 »

  1.   

     xml 存在多个类型相同的bean。需要把AbstractTransactionalSpringContextTests的依赖自动绑定方式从byType改为byName。或者手工注入bean。
      

  2.   

    先谢谢楼上的,
    下面是我的bean,
    你说的那个AbstractTransactionalSpringContextTests的依赖自动绑定方式从byType改为byName
    我不太明白,要怎么改?那如果我在action里注入呢?会不会也是这样啊?
    麻烦了<!--DAO-->
    <bean id="addrDAO"
    class="com.sinosoft.ump.datas.dao.BdAddressDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="contentMegDAO"
    class="com.sinosoft.ump.datas.dao.BdContentMessageDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="linkMegDAO"
    class="com.sinosoft.ump.datas.dao.BdLinkMessageDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="LogDAO"
    class="com.sinosoft.ump.datas.dao.BdLogDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <!--service-->
    <bean id="addrService"
    class="com.sinosoft.ump.datas.bo.BdAddressBOImpl">
    <property name="addrDAO" ref="addrDAO" />
    </bean>