gpt4 book ai didi

java - Spring bean 整数注入(inject)失败

转载 作者:行者123 更新时间:2023-12-02 04:47:39 25 4
gpt4 key购买 nike

我定义了 4 个 java.lang.Integer 类型的 bean。两个 bean 已正确注入(inject)(gradeSyncMinCount 和gradeSyncMaxCount),但我在注入(inject)另外 2 个时遇到问题。这两个有问题的 bean 是我刚刚创建的。同样的 4 个 bean 也可以成功注入(inject)到 Controller 类中。我尝试了@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>

最佳答案

检查@Qualifier注释或autowired=byName,你有4个相同类型的bean,spring无法确定将哪一个注入(inject)到哪里。使用@Qualifier,您可以传递要注入(inject)的bean的名称,以如下形式结尾:

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

希望对你有帮助!

关于java - Spring bean 整数注入(inject)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com