大家好,感谢您提前的帮助。
我遇到一个问题,Spring 无法自动装配 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 感到困惑,它无法找到匹配项并且不会执行自动装配。
关于如何让它发挥作用有什么想法吗?我知道我可以创建自己的包装类(围绕 ArrayBlockingQueue),该包装类未参数化,但如果有更好的方法来解决这个问题,我宁愿不这样做。
如果您尝试使用注释自动连接集合,请使用@Resource
代替@Autowired
.
为了满足@Autowired
集合依赖项,IoC 容器会查找正确类型的元素来构建此类集合。换句话说,它并不查找集合本身,而是从其他 bean 中构建集合。
有关更多信息,请参阅 Spring 文档,例如。here https://jira.springsource.org/browse/SPR-5038.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)