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

标签 java spring dependency-injection integer

我定义了 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/

相关文章:

java - 无需在主窗体上即可获取鼠标位置

java - 如果我使用 Java 中的 JPA 搜索 child 的 parent 之一,如何获得 child 的姓名作为结果?

c# - 两种类型通用接口(interface)的依赖注入(inject)

c# - Ninject 'Get'方法可以缓存值吗?

c# - 依赖注入(inject)有什么大的改进?

java - 线程完成执行后是否会通知另一个加入的线程?

java - 如何在运行时从 jar 中复制文件?

java - 如何决定在 Maven 中使用哪个插件?

java - 拦截器中从MessageContext获取ServletContext

java - Spring MongoTemplate - 通过正则表达式在集合中查找