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

Java 应用程序上下文上Bean引用的Spring集成表达式,java,spring,expression,integration,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

我怀疑是否有可能解析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();
}
@ServiceActivator
公共消息sendToJms(消息输入){
字符串queueName=solveQueueName(refToSolveBeanID);
返回MessageBuilder.withPayload(messageInput.getPayLoad()).setHeader(“beanIdHeaderRef,queueName).builder();
}
现在,我的问题是如何构造表达式来解决Spring上下文上的bean引用,以便进行以下配置工作

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

正如您所注意到的,JMS目的地是使用jndi查找配置的 我尝试了一些变体,但都失败了。我认为必须将标题值传递给BeanFactory,但不知道如何创建表达式,有人知道表达式应该是什么样子吗


尊敬。

查看您的代码,我不认为有理由从SpEL访问
BeanFactory
。您只需将
refToSolveBeanID
解析到目标
目的地
,并将该对象直接放置到
标题


不过,您的SpEL将是相同的。

很抱歉,代码片段中有一些拼写错误……代码是在这里编写的……是的,我这样做了,并且工作了,事实上,jndi查找将不是必需的,因为目标表达式在不需要jndi查找配置的情况下进行求解。