前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring 与 ActiveMQ 整合代码

Spring 与 ActiveMQ 整合代码

作者头像
前Thoughtworks-杨焱
发布2021-12-08 09:06:48
1840
发布2021-12-08 09:06:48
举报
文章被收录于专栏:杨焱的专栏

Spring 与 ActiveMQ 整合代码

代码语言:javascript
复制
<bean id="targetConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactoryFactoryBean">
        <property name="tcpHostAndPorts">
            <list>
                <value>tcp://localhost:61616</value>
            </list>
        </property>
        <property name="maxReconnectDelay" value="5000"/>
    </bean>

    <!-- 配置JMS ConnectionFactory -->
    <bean id="jmsConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="cacheProducers" value="true"/>
        <property name="targetConnectionFactory" ref="targetConnectionFactory">
        </property>
        <property name="reconnectOnException" value="true"/>
    </bean>


    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="jmsConnectionFactory"/>
    </bean>

    <!-- 主题消息目的地 -->
    <!--<bean class="org.apache.activemq.command.ActiveMQTopic">-->
    <!--&lt;!&ndash; 设置主题的名字&ndash;&gt;-->
    <!--<constructor-arg name="name" value="subject"/>-->
    <!--</bean>-->

    <!--队列消息目的地 -->

    <!--短信队列-->
    <bean id="smsQueue" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg name="name" value="smsQueue"/>
    </bean>
    <!--信鸽推送-->
    <!--发送邮件-->


    <bean id="smsQueueListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="concurrentConsumers" value="10"/>
        <property name="connectionFactory" ref="jmsConnectionFactory"/>
        <property name="destination" ref="smsQueue"/>
        <property name="messageListener" ref="smsQueueConsumer"/>
        <property name="pubSubNoLocal" value="false"/>
        <property name="pubSubDomain" value="false"/>
    </bean>

短信消息处理

代码语言:javascript
复制
public class SmsQueueConsumer implements MessageListener {
    @Override
    public void onMessage(Message message) {
        String topicName = null;
        try {
            Queue jmsReplyTo = (Queue) message.getJMSDestination();
            ;
            topicName = jmsReplyTo.getQueueName();
        } catch (JMSException e) {
            e.printStackTrace();
        }

        if (message instanceof TextMessage) {
            try {
                System.out.println(Thread.currentThread().getName() + ",收到队列(" + topicName + ")的消息:" + ((TextMessage) message).getText());
            } catch (JMSException ex) {
                throw new RuntimeException(ex);
            }
        } else {
            throw new IllegalArgumentException("Message must be of type TextMessage");
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档