我对 Spring Framework 的世界相当陌生,并尝试通过 Spring 初始化一个对象“abcListener”,该对象包含一个实例变量“algoMediator”,但出现以下异常。
Error creating bean with name 'abcListener' defined in class path resource [eventcreation/integration.xml]: Cannot resolve reference to bean 'liabilityService' while setting bean property 'algoMediator'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'liabilityService' is defined.
在 Spring XML 中,我定义了 bean,如下所示。
<bean id="abcListener" class="services.integration.AbcListener">
<property name="algoMediator" ref="liabilityService"/>
</bean>
Java 类是
public class AbcListener
{
private AlgoMediator algoMediator;
public void setAlgoMediator(AlgoMediator algoMediator) {
this.algoMediator = algoMediator;
}
}
我在太多地方 checkin 了项目,实例变量 bean 以相同的方式定义,并且“liabilityService”在不同的文件中定义,但它不接受我的定义。
liabilityService Spring XML 是 http://www.springframework.org/schema/beans/spring-beans.xsd” 默认自动线=“byName”>
<alias name="liabilityService" alias="algoMediator"/>
<bean id="liabilityService" class="services.liability.impl.AlgoMediator" init-method="init" >
<property name="eventLiabilityMonitoringInterval" value="${liability.eventLiabilityMonitoringInterval}"/>
<property name="fastTrackedSuspensions" value="${ms.fastTrackedSuspensions:false}"/>
<property name="blurInterval" value="${liability.ms.blurInterval}"/>
<property name="publishActualOffTime" value="${ms.publishActualOffTime}"/>
<property name="transactionManager" ref="transactionManager"/>
<property name="liabilityDatasource" ref="liabilityDatasource"/>
<property name="liabilityScaleFactor" value="${liability.scaleFactor:0}"/>
<property name="sportsWithoutMarketAlerts" value="${alerts.sportsWithoutMarketAlerts}"/>
</bean>
最佳答案
请检查 AlgoMediator 类中是否存在 init() 方法,否则删除 init-method="init"声明
关于java - 创建名为 : org. springframework.beans.factory.NoSuchBeanDefinitionException 的 bean 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40717654/