0
我有一个简单MessageProducer
类,使用将消息发送到直接信道骆驼ProducerTemplate
骆驼&弹簧忽略@Produce和@EndpointInject
下面是代码
@Component
@Slf4j
public class MessageProducer {
@EndpointInject(uri = "direct:app.out")
protected ProducerTemplate template;
public void sendEvent(Object payload, String eventName) {
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("eventName", eventName);
template.sendBodyAndHeaders(payload, headers);
log.debug("Sent message {}", payload);
}
}
当调试这个我发现该模板在webapp中运行时为null,但它在春季Junit测试中有效。
我不明白什么是错误的。
可能是一个愚蠢的问题,但是您是否扫描组件,以便MessageProducer类在春天被拾取并初始化? – 2012-07-16 19:15:57
是的春天豆后处理器需要踢,让IoC运行。骆驼测试工具包可以自动执行此操作,因此它可以通过单元测试进行工作。 – 2012-07-17 05:18:02
@克劳斯,你是对的,添加一个后处理器完成了这项工作。 – Manoj 2012-07-18 13:47:36