Spring bean注入Integer失败

时间:2015-04-09 04:08:04

标签: java spring dependency-injection integer

我已经定义了4个java.lang.Integer类型的bean。 两个bean被正确注入(gradeSyncMinCount和gradeSyncMaxCount),但是我有问题注入另外两个2.这两个有问题的bean是我刚刚创建的。 也可以将相同的4个bean成功注入控制器类。我试过@Qualifier,@ Resource,@ Autowired。我也检查了组件扫描。 我不明白我错过了什么。请帮忙。

引起:

org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [java.lang.Integer] is defined: expected single matching bean but found 2: gradeSyncMaxCount,gradeSyncMinCount

我的Java类

@Autowired
private Integer gradeSyncMinCount;
@Autowired
private Integer gradeSyncMaxCount;
@Autowired
private Integer maxDeliveryAttempt;
@Autowired
private Integer maxDaysToKeep;

我的applicationContext.xml

<bean id="maxDeliveryAttempt" class="java.lang.Integer">
<constructor-arg value="4" />
</bean>

<bean id="maxDaysToKeep" class="java.lang.Integer">
<constructor-arg value="200" />
</bean>
<bean id="gradeSyncMaxCount" class="java.lang.Integer">
<constructor-arg value="500" />
</bean>  
<bean id="gradeSyncMinCount" class="java.lang.Integer">
<constructor-arg value="15" />
</bean>

1 个答案:

答案 0 :(得分:2)

签出@Qualifier注释或autowired=byName,您有4个相同类型的bean,而spring可以注入哪个注入的位置。使用@Qualifier,您可以传递要注入的bean的名称,结尾为:

@Autowired
@Qualifier("gradeSyncMinCount")
private Integer gradeSyncMinCount;

希望它有所帮助!