在java 1.7中,将JMS外部绑定通道适配器转换为EqualEvent Spring集成DSL

在java 1.7中,将JMS外部绑定通道适配器转换为EqualEvent Spring集成DSL,jms,spring-integration,dsl,spring-jms,Jms,Spring Integration,Dsl,Spring Jms,如何将转换为java 1.7中的等效版本 以下是ActiveMQ配置: <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory"> <bean class="org.apache.activemq.ActiveMQConnec

如何将
转换为java 1.7中的等效版本

以下是ActiveMQ配置:

<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <property name="targetConnectionFactory">
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL" value="tcp://localhost:61616"/>
        </bean>
    </property>
    <property name="sessionCacheSize" value="10"/>
</bean>

<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="queue.demo"/>
</bean>


等等。

您可以如下配置发件人:

    @Configuration
@ComponentScan(basePackages = { "com.sample.dispatcher" })
public class DispatcherConfig {

    public static final String JOB_TOPIC = "jobTopic";

    @Bean
    @ServiceActivator(inputChannel = JOB_TOPIC)
    public MessageHandler outboundJmsAdapter(JmsTemplate template) {
        JmsSendingMessageHandler handler = new JmsSendingMessageHandler(template);
        handler.setDestinationName(JOB_TOPIC);
        return handler;
    }

    @Bean(name = JOB_TOPIC)
    public MessageChannel jobTopic() {
        return new PublishSubscribeChannel();
    }
}
听众是这样的

@Configuration
@ComponentScan(basePackages = { "com.sample.processor" })
@IntegrationComponentScan(basePackages = { "com.sample.processor" })
public class ProcessorConfig {

    public static final String ON_POST_JOB = "onPostJob";

    public static final String JOB_TOPIC = "jobTopic";

    @Bean
    public Queue jobTopic() {

        return new ActiveMQQueue(JOB_TOPIC);
    }

    @Bean
    public JmsMessageDrivenEndpoint inboundJmsAdapter(ConnectionFactory connectionFactory) {

        return new JmsMessageEndpointBuilder()
                .setConnectionFactory(connectionFactory)
                .setDestination(JOB_TOPIC)
                .setInputChannel(onPostJob())
                .build();
    }

    @Bean(name = ON_POST_JOB)
    public MessageChannel onPostJob() {

        return new PublishSubscribeChannel();
    }

}
我有一个示例项目,它使用jms和Spring集成作为在单独vm/process/上运行的两个应用程序之间的通信形式:


不要在注释中添加XML;它不能很好地呈现-请编辑您的问题。Gary感谢您的回答…您能告诉我什么是DSL配置吗?请参阅和查看配置示例。基本上,我的主要目的是将下面的snipplet转换为spring DSL>destination=“requestQueue”/>>ref=“messageListener”method=“processMessage”/>我曾经要求您不要在评论中发布XML;这是不可读的。试着按照我的建议阅读文档和测试用例;如果你仍然不明白,问一个具体的问题;不要要求我们为你做所有的工作。
@Configuration
@ComponentScan(basePackages = { "com.sample.processor" })
@IntegrationComponentScan(basePackages = { "com.sample.processor" })
public class ProcessorConfig {

    public static final String ON_POST_JOB = "onPostJob";

    public static final String JOB_TOPIC = "jobTopic";

    @Bean
    public Queue jobTopic() {

        return new ActiveMQQueue(JOB_TOPIC);
    }

    @Bean
    public JmsMessageDrivenEndpoint inboundJmsAdapter(ConnectionFactory connectionFactory) {

        return new JmsMessageEndpointBuilder()
                .setConnectionFactory(connectionFactory)
                .setDestination(JOB_TOPIC)
                .setInputChannel(onPostJob())
                .build();
    }

    @Bean(name = ON_POST_JOB)
    public MessageChannel onPostJob() {

        return new PublishSubscribeChannel();
    }

}