0

在我添加 JMX 导出命名空间处理程序之前,我可以在测试类中使用和自动装配两个QueueChannel实例。@Autowired@Qualifier

我手头没有确切的配置(这是工作中的一个问题,现在让我忙得不亦乐乎!),但我正在使用这些元素:

<int-jmx:mbean-export default-domain="com.business" server="mbeanServer" />
<context:mbean-export />
<context:mbean-server />

当我定义了这三件事时,自动装配过程失败并抛出NoSuchBeanException. 但是,我可以看到有带有我的队列 ID 的 bean,因为我有一个在上下文中迭代所有 bean 的后处理器。

这是否与代理混淆QueueChannels 的声明类型,防止按类型自动装配工作有关?

4

1 回答 1

3

您需要使用接口而不是具体类来自动装配,因为 JMX 导出将通道包装在代理中。使用PollableChannelforQueueChannelSubscribableChannelfor DirectChannel

正是出于这个原因,使用接口而不是具体类进行编码总是一种好习惯。

于 2012-11-12T23:51:07.740 回答