大家好,感谢您的提前帮助。
我遇到一个问题,Spring 无法 Autowiring 类型为 ArrayBlockingQueue 的参数化成员变量。
这是Java代码:
@Controller
public class SomeController
{
@Autowired
private ArrayBlockingQueue<SomeCustomType> myQueue;
}
在spring配置xml中:
<bean id="myQueue" class="java.util.concurrent.ArrayBlockingQueue">
<constructor-arg value="10"/>
</bean>
为 ArrayBlockingQueue 指定类型 (SomeCustomType) 似乎混淆了 spring,它找不到匹配项并且不执行 Autowiring 。
关于如何让它发挥作用的任何想法?我知道我可以创建自己的未参数化的包装类(围绕 ArrayBlockingQueue),但如果有更好的方法来解决这个问题,我宁愿不这样做。
最佳答案
如果您尝试使用注释自动连接集合,请使用 @Resource
而不是 @Autowired
。
为了满足@Autowired
集合依赖,IoC 容器寻找正确类型的元素来构建这样的集合。换句话说,它不查找集合本身,而是从其他 bean 构建一个集合。
有关更多信息,请参阅 Spring 文档,例如。 here .
关于java - 参数化集合的Spring Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655214/