Spring 具有相同实现的接口声明
Spring declaration for interfaces with the same implementation
我对 Spring 有疑问。
我有两个独立的接口,findUnconditionalDiscountValuesStrategy 和 findConditionalDiscountValuesStrategy。这些接口在相同的 class MmfgFindPricingWithCurrentPriceFactoryStrategy 中实现。
这是在 spring 配置文件中声明的,如下所示:
<alias name="mmfgFindPricingWithCurrentPriceFactoryStrategy" alias="currentFactoryFindPricingStrategy"/>
<bean id="mmfgFindPricingWithCurrentPriceFactoryStrategy" class="com.mmfg.mmfgacceleratorcore.order.strategies.calculation.impl.MmfgFindPricingWithCurrentPriceFactoryStrategy" parent="abstractBusinessService">
<property name="findPricingWithCurrentPriceFactoryStrategy" ref="original-currentFactoryFindPricingStrategy"/>
<property name="configurationService" ref="configurationService"/>
<property name="mmfgSessionService" ref="mmfgSessionService"/>
<property name="mmfgUtilsDao" ref="mmfgUtilsDao" />
</bean>
现在,我在class
中使用这两个接口
private FindUnconditionalDiscountValuesStrategy findUnconditionalDiscountValuesStrategy;
private FindConditionalDiscountValuesStrategy findConditionalDiscountValueStrategy;
with getter and setter (getter protected and setter @Required).
现在我在spring配置文件中以这种方式声明了这个class:
<bean id="mmfgOrderCalculationStrategy" class="com.mmfg.mmfgacceleratorcore.order.strategies.calculation.impl.DefaultMmfgOrderCalculationStrategy">
<property name="findUnconditionalDiscountValuesStrategy" ref="currentFactoryFindPricingStrategy"/>
<property name="findConditionalDiscountValuesStrategy" ref="currentFactoryFindPricingStrategy"/>
<property name="modelService" ref="modelService" />
<property name="commonI18NService" ref="commonI18NService" />
<property name="calculationService" ref="calculationService"/>
</bean>
两个接口的ref是一样的,因为实现class是一样的。
但是在运行时我得到这个错误:
org.springframework.beans.factory.BeanInitializationException:bean 'mmfgOrderCalculationStrategy'
需要 属性 'findConditionalDiscountValueStrategy'
如何在两个属性中声明 ref?
有一个拼写错误。我的 属性 叫做 findConditionalDiscountValueStrategy。但在 class 中名称是 findConditionalDiscountValuesStrategy.
我对 Spring 有疑问。
我有两个独立的接口,findUnconditionalDiscountValuesStrategy 和 findConditionalDiscountValuesStrategy。这些接口在相同的 class MmfgFindPricingWithCurrentPriceFactoryStrategy 中实现。
这是在 spring 配置文件中声明的,如下所示:
<alias name="mmfgFindPricingWithCurrentPriceFactoryStrategy" alias="currentFactoryFindPricingStrategy"/>
<bean id="mmfgFindPricingWithCurrentPriceFactoryStrategy" class="com.mmfg.mmfgacceleratorcore.order.strategies.calculation.impl.MmfgFindPricingWithCurrentPriceFactoryStrategy" parent="abstractBusinessService">
<property name="findPricingWithCurrentPriceFactoryStrategy" ref="original-currentFactoryFindPricingStrategy"/>
<property name="configurationService" ref="configurationService"/>
<property name="mmfgSessionService" ref="mmfgSessionService"/>
<property name="mmfgUtilsDao" ref="mmfgUtilsDao" />
</bean>
现在,我在class
中使用这两个接口private FindUnconditionalDiscountValuesStrategy findUnconditionalDiscountValuesStrategy;
private FindConditionalDiscountValuesStrategy findConditionalDiscountValueStrategy;
with getter and setter (getter protected and setter @Required).
现在我在spring配置文件中以这种方式声明了这个class:
<bean id="mmfgOrderCalculationStrategy" class="com.mmfg.mmfgacceleratorcore.order.strategies.calculation.impl.DefaultMmfgOrderCalculationStrategy">
<property name="findUnconditionalDiscountValuesStrategy" ref="currentFactoryFindPricingStrategy"/>
<property name="findConditionalDiscountValuesStrategy" ref="currentFactoryFindPricingStrategy"/>
<property name="modelService" ref="modelService" />
<property name="commonI18NService" ref="commonI18NService" />
<property name="calculationService" ref="calculationService"/>
</bean>
两个接口的ref是一样的,因为实现class是一样的。
但是在运行时我得到这个错误:
org.springframework.beans.factory.BeanInitializationException:bean 'mmfgOrderCalculationStrategy'
需要 属性 'findConditionalDiscountValueStrategy'如何在两个属性中声明 ref?
有一个拼写错误。我的 属性 叫做 findConditionalDiscountValueStrategy。但在 class 中名称是 findConditionalDiscountValuesStrategy.