我已经定义了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>
答案 0 :(得分:2)
签出@Qualifier
注释或autowired=byName
,您有4个相同类型的bean,而spring可以注入哪个注入的位置。使用@Qualifier
,您可以传递要注入的bean的名称,结尾为:
@Autowired
@Qualifier("gradeSyncMinCount")
private Integer gradeSyncMinCount;
希望它有所帮助!