应用程序上下文中Bean引用的Spring集成表达式

时间:2015-10-16 16:39:08

标签: java spring expression integration

我怀疑是否可以解析JMS目标的bean引用以配置JMS适配器。

我在Spring上配置了以下几个目标:

<jee:jndi-lookup id="BeanID" jndi-name="jms/QUEUE" lazy-init="false"/>

然后我在消息标题上添加一个值,其值为:

@ServiceActivator
public Message<?> sendToJms(Message<?> messageInput){ 
    String queueName = solveQueueName(refToSolveBeanID); 
    return MessageBuilder.withPayload(messageInput.getPayLoad()).setHeader("beanIdHeaderRef, queueName ).builder();
}

现在我的问题是如何构造表达式来解决Spring Context上的bean引用,以便进行以下配置工作。

<int:chain input-channel="jmsChannel">
        <jms:outbound-channel-adapter  
            connection-factory="solicitacaoConnFactory"   destination-expression="headers.beanIdHeaderRef">
        </jms:outbound-channel-adapter>
    </int:chain>

您注意到使用 jndi-lookup 配置了JMS目标 我尝试了一些变化,但都失败了。我认为必须将BeanFactory传递给头部值,但不知道如何创建表达式,是否有人知道表达式应该是什么样的?

的问候。

1 个答案:

答案 0 :(得分:0)

查看您的代码,我不明白有理由从SpEL访问BeanFactory。您只需将refToSolveBeanID解析为目标Destination,然后将该对象直接放入headers即可。

你的SpEL会是一样的。