Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么spring不自动连线我的测试?_Spring_Autowired - Fatal编程技术网

为什么spring不自动连线我的测试?

为什么spring不自动连线我的测试?,spring,autowired,Spring,Autowired,我有以下spring配置实际上,配置更广泛,但我包括了相关部分: testApplicationContext.xml 然而,Spring一直告诉我它不能自动连线: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.company.utils.data.serviceaction.TransactionalServiceAction] found for d

我有以下spring配置实际上,配置更广泛,但我包括了相关部分:

testApplicationContext.xml

然而,Spring一直告诉我它不能自动连线:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.company.utils.data.serviceaction.TransactionalServiceAction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.
如果我用一个BasketBusiness BasketBusiness字段替换这个字段,那么Spring完全有能力做到这一点

据我所见,CreateBasketServiceAction和BasketBusiness在XML配置中都定义为a


在过去的几个小时里,我一直在用头撞墙。我做错了什么?

堆栈跟踪中是否还有其他错误?错误显示它正在查找TransactionalServiceAction。。CreateBasketServiceAction和TransactionalServiceAction之间的关系是什么?CreateBasketServiceAction是否有任何理由在您的上下文配置中被代理?CreateBasketServiceAction扩展了TransactionalServiceAction。继承是@Autowire的一个问题吗?@SotiriosDelimanolis:不确定代理是什么意思……CreateBasketServiceAction代理了吗?可能。您在该类中有任何事务管理吗?您的配置中有哪些方面需要考虑?
<bean id="basketBusiness" class="com.company.salesdataservice.business.BasketBusiness">
    <property name="basketDao" ref="basketDao" />
    <property name="tokenDao" ref="tokenDao" />
    <property name="houseDao" ref="houseDao" />
    <property name="currencyDao" ref="currencyDao" />
</bean>
<bean id="currencyDao" class="com.company.salesdataservice.dao.CurrencyDao">
    <property name="dataSource" ref="companyDomainDataSource" />
</bean>
<bean id="houseDao" class="com.company.salesdataservice.dao.HouseDao"/>
<bean id="basketDao" class="com.company.salesdataservice.dao.BasketDao">
    <property name="dataSource" ref="companyBookingDataSource" />
</bean>
<bean id="tokenDao" class="com.company.salesdataservice.dao.JavaRandomTokenDao" />
<bean id="companyBookingTransactionManager" class="com.company.utils.data.TransactionManager">
    <property name="manager" ref="companyBookingSpringTransactionManager" />
</bean>

<bean id="companyBookingSpringTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="companyBookingDataSource" />
</bean>

<!-- initialised by a DataSourceInitializer. Left out for brevity. -->
<jdbc:embedded-database id="companyBookingDataSource" type="H2"/>

<!-- initialised by a DataSourceInitializer. Left out for brevity. -->    
<jdbc:embedded-database id="companyDomainDataSource" type="H2"/>
<bean id="createBasketServiceAction" class="com.company.salesdataservice.serviceaction.CreateBasketServiceAction">
    <property name="transactionManager" ref="companyBookingTransactionManager" />
    <property name="basketBusiness" ref="basketBusiness" />
</bean>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/testApplicationContext.xml"})
public class CreateBasketServiceActionTest {

    @Autowired
    CreateBasketServiceAction createBasketServiceAction;

}
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.company.utils.data.serviceaction.TransactionalServiceAction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.