kaka的gravatar头像
kaka 2014-05-18 13:53:04

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界面如下:

spring整合apache 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

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

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

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

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


最代码官方编辑于2016-8-5 9:44:15


打赏

文件名:zuidaima_activemq.rar,文件大小:27.095K 下载
最代码最近下载分享源代码列表最近下载
wei331  LV1 2020年12月15日
tiansitong  LV13 2020年8月19日
simple丶余心  LV21 2020年7月27日
weixiaoderen123  LV2 2020年3月8日
javaPrimary  LV11 2020年1月13日
smalltarget  LV6 2019年11月13日
垃圾平台已注销  LV7 2019年9月3日
luo110012  LV8 2019年8月25日
HCh1018  LV3 2019年8月21日
LikL9420  LV12 2019年8月6日
最代码最近浏览分享源代码列表最近浏览
npc也有忧伤  LV3 3月20日
gaohd123456789  LV8 1月21日
sizeking  LV8 2021年4月12日
xb1406112453  LV5 2021年3月12日
xsxtxbb  LV8 2021年3月9日
hs123456  LV1 2021年1月7日
wei331  LV1 2020年12月14日
wangdengzhe  LV7 2020年11月30日
lwj1007 2020年8月23日
暂无贡献等级
tiansitong  LV13 2020年8月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友