【问题标题】:Spring Integration - setting dynamic queue nameSpring Integration - 设置动态队列名称
【发布时间】:2017-03-12 15:21:10
【问题描述】:

我根据作业实例 ID 创建动态队列。对于请求队列,我可以覆盖 xml 配置并将队列名称设置为jmsTemplateRequest.setDefaultDestination(jobid) 在下面提到的 xml 配置的 java 代码中。 对于响应队列,我想要一个解决方案。因为我无法以编程方式为jms:inbound-channel-adapter 设置jms-template 属性。

<int-jms:outbound-channel-adapter channel="RequestsChannel" jms-template="jmsTemplateRequest"/>
<bean id="RequestQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="RequestsQueue" />
</bean>

<bean id="jmsTemplateRequest" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="receiveTimeout" value="5000" />
    <property name="defaultDestination" ref="RequestQueue"/>

    <!-- OTHERWISE how can I modify queue name in below code in java by autowiring? -->
     <int-jms:message-driven-channel-adapter connection-factory="connectionFactory"
                                        channel="ReplyChannel"
                                        destination-name="ReplyQueue"/>

【问题讨论】:

    标签: spring-integration spring-jms


    【解决方案1】:

    消息驱动的适配器不使用JmsTemplate

    您必须使用 java @Configuration 而不是 XML 来构造适配器。

    您需要两个@Beans - 一个JmsMessageDrivenEndpoint 和一个ChannelPublishingJmsMessageListener,它们在构造函数中传递到端点。

    您也可以使用属性占位符或 SpEL 表达式...

    destination-name="#{someBean.replyDestination}"
    

    会在someBean 上致电getReplyDestination()

    【讨论】:

    • 我不能把@Value(value="somevalue") private String queueName; “somevalue”将是动态的
    • 你能举一个从java传递到xml的例子吗?上面的某个值是动态的。我必须这样设置。 queueName=getJobId();对不起,如果我没有达到那么高的水平
    • 你的问题不清楚。您需要提供更多上下文。
    • XML 方面没问题。如果我在 queueName=getJobId() 之类的方法中设置值,Java 方面可以举个例子吗?
    • 在 xml 中,我有这样的: 在java中:我有这样的:private String destinationName; public void setDestinationName(String destinationName) { this.destinationName = destinationName; } 公共字符串 getDestinationName() { 返回目的地名称; } public void someMethod() { setDestinationName(getJobId());}
    猜你喜欢
    • 2022-12-01
    • 2013-06-13
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多