Ubuntu安装activeMQ+spring整合

activeMQ:5.15.14
spring:4.1.3
Ubuntu:20.4

一、安装

1、 直接官网下载

activeMQ官网:
http://activemq.apache.org/

2、上传服务器
rz
3、解压
tar -zxf  apache-activemq-5.15.14-bin.tar.gz
mv apache-activemq-5.15.14 activemq
4、开启activeMQ服务
cd /data/activeMQ/activemq/bin/linux-x86-64/
./activemq start

根据自己的服务器选择linux-x86-64 还是linux-x86-32

自己电脑上访问:
http://192.168.xx.xxx:8161/admin/
确定是否安装成功
IP地址为服务器IP地址

5、登录

在这里插入图片描述

二、spring整合

pom.xml

 <dependencies>
  <!-- activemq和spring进行集成需要下面三个jar包  -->
<dependency>
  <groupId>org.apache.activemq</groupId>
  <artifactId>activemq-all</artifactId>
  <version>5.15.14</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jms</artifactId>
  <version>4.1.3.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-pool2</artifactId>
  <version>2.4.2</version>
</dependency>
  </dependencies>

applicationContext-acticemq.xml

<!-- 真正可以产生Connection的ConnectionFactory,由对应的JMS服务厂提供 -->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" >
<property name="brokerURL" value="tcp://192.168.37.129:61616"/> 
</bean>
	<!-- Spring用于管理真正的ConnectionFactory的 ConnectionFactory-->
	<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
	<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
	</bean>
	
	<!-- Spring 提供的JMS工具类,它可以进行消息发送 -->
	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
	
	<property name="connectionFactory" ref="connectionFactory"/>
	</bean>
	
	<!-- 这是队列目的地,点对点的 -->
	<bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
	<constructor-arg>
	<value>queue</value>
	</constructor-arg>
	</bean>
	
	
	<!-- 这是主题目的地,一对多的 -->
	<!-- <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
	<constructor-arg value="topic"></constructor-arg>
	</bean> -->
	
	
	<!-- MessageListener实现类 -->
	<bean id="MyMessageListener" class="cn.itcast.activeMQ.spring.MyMessageListener"></bean>
	
	<!-- 配置一个jsm监听容器 -->
	<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
	<property name="connectionFactory" ref="connectionFactory"></property>
	<property name="messageListener" ref="MyMessageListener"></property>
	<property name="destination" ref="queueDestination"></property>
	</bean>
	

Product.java

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;


import javax.jms.Session;
import javax.jms.TextMessage;


import org.apache.activemq.command.ActiveMQTextMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

public class Product {
	public static void main(String[] args) throws Exception {
		String brokerURL="tcp://192.168.37.129:61616";
		//创建spring容器
		ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext-acticemq.xml");
		
		//从容器中获取JMSTemplate,这个对象是用于发送消息的
		JmsTemplate jmsTemplate=context.getBean(JmsTemplate.class);
		
		//从spring容器中获取Destination对象
		Destination destination=context.getBean(Destination.class);
		
		//使用JMSTemplate发送消息
		jmsTemplate.send(destination,new MessageCreator() {
			
			@Override
			public Message createMessage(Session session) throws JMSException {
				//创建消息体使用TextMessage类型
				TextMessage textMessage =new ActiveMQTextMessage();
				 textMessage.setText("消息1");
				System.out.println("发消息了");
				return textMessage;
			}
		});
	}
}

MyMessageListener.java

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

public class MyMessageListener implements MessageListener {

	@Override
	public void onMessage(Message message) {
		
		//判断消息类型是TextMessage
		if(message instanceof TextMessage){
			
			TextMessage textMessage=(TextMessage) message;
			try {
				String text = textMessage.getText().toString();
				System.out.println(text);
			} catch (JMSException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
		}	
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值