spring整合apache activemq实现消息发送的三种方式代码配置实例

原文:spring整合apache activemq实现消息发送的三种方式代码配置实例


我们项目中发送事件告警要用到消息队列,所以学习了下activemq,整理如下:

activemq的介绍就不用说了,官网上大家可以详细的看到。

1.下载并安装activemq:地址http://activemq.apache.org/activemq-590-release.html,我下面的例子用的是5.9.0的版本。下载后解压就完成安装了。进入解压目录的bin目录,选择windows位数(32/64),启动activemq.bat就可以开启activemq服务了。登陆http://localhost:8161/admin就可以进入mq的界面了,官方默认登录名/密码是:admin/admin,也可以在conf/jetty-realm.properties中自行修改,activemq界面如下:

简单介绍下导航栏:

Queues:队列方式消息。

Topics:主题方式消息。

Subscribers:消息订阅监控查询。

Connections:查看链接数,分别可以查看xmpp、ssl、stomp、openwire、ws和网络链接。

Network:网络链接数监控。

Scheduled:没有用到,不太清楚。

Send:发送消息数据

2.发送和接受消息的步骤:

 a.发送消息

(1)创建连接使用的工厂类JMS ConnectionFactory

(2)使用管理对象JMS ConnectionFactory建立连接Connection,并启动

(3)使用连接Connection 建立会话Session

(4)使用会话Session和管理对象Destination创建消息生产者MessageSender

(5)使用消息生产者MessageSender发送消息

b.接收消息

(1)创建连接使用的工厂类JMS ConnectionFactory

(2)使用管理对象JMS ConnectionFactory建立连接Connection,并启动

(3)使用连接Connection建立会话Session

(4)使用会话Session和管理对象Destination创建消息接收者MessageReceiver

(5)使用消息接收者MessageReceiver接受消息,需要用setMessageListener将MessageListener接口绑定到MessageReceiver,消息接收者必须实现了MessageListener接口,需要定义onMessage事件方法。

3.spring的集成:spring集成所需要的jar包我已经在pom.xml中配置了,大家可以看看都需要哪些jar。当然下载的activemq的lib下也有这些jar。spring的整合比较简单,只需在spring的配置文件中配置消息模板JmsTemplete就可以了,具体如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <!-- 连接池  -->
    <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">  
        <property name="connectionFactory">  
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">  
                <property name="brokerURL" value="tcp://localhost:61616" />  
            </bean>  
        </property>  
    </bean>  
      
    <!-- 连接工厂 -->
    <bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">  
        <property name="brokerURL" value="tcp://localhost:61616" />  
    </bean>  
    
    <!-- 配置消息目标 -->
    <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">  
        <constructor-arg index="0" value="com.zuidaima.spring" />  
    </bean>  
 
    <!-- 消息模板 -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">  
        <property name="connectionFactory" ref="activeMQConnectionFactory" />  
        <property name="defaultDestination" ref="destination" />  
        <property name="messageConverter">  
            <bean class="org.springframework.jms.support.converter.SimpleMessageConverter" />
        </property>  
    </bean>  
</beans>

4.项目运行截图:

JMS

其他几种方式我就不一一截图了,请具体运行项目查看。

5.开发环境:win7 32位+eclipse kepler + jdk7 + maven

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值