【Java Web开发学习】Spring消息-ActiveMQ发送消息
ActiveMQ发送消息
转载:http://www.cnblogs.com/yangchongxing/p/9042401.html
Java消息服务(Java Message Service, JMS)是一个Java标准,定义了使用消息代理的通用API。
ActiveMQ是一个开源消息代理产品,也是使用JMS进行异步消息传递的最佳选择。
下载ActiveMQ:http://activemq.apache.org
下载解压后进入相应的bin目录:activemq start
借助JMS连接工厂通过消息代理发送消息
创建JMS连接工厂
默认的账户:
ActiveMQConnection.DEFAULT_USER
ActiveMQConnection.DEFAULT_PASSWORD
ActiveMQConnection.DEFAULT_BROKER_URL
Java配置
@Bean
public ConnectionFactory connectionFactory() {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
factory.setBrokerURL("tcp://localhost:61616");
return factory;
}
XML配置
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory" p:brokerURL="tcp://localhost:61616"/>
声明消息目的地
队列
Java配置
@Bean
public ActiveMQQueue queue() {
ActiveMQQueue queue = new ActiveMQQueue();
queue.setPhysicalName("mvc.queue");
return queue;
}
XML配置
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue" c:_="mvc.queue"/>
主题
Java配置
@Bean
public ActiveMQTopic topic() {
ActiveMQTopic topic = new ActiveMQTopic();
topic.setPhysicalName("mvc.topic");
return topic;
}
XML配置
<bean id="topic" class="org.apache.activemq.command.ActiveMQTopic" c:_="mvc.topic"/>
使用传统JMS方式发送和接受消息
public void sendMsg() throws Exception {
Connection conn = new ActiveMQConnectionFactory("tcp://localhost:61616");
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = new ActiveMQQueue("mvc.queue");
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage();
message.setText("hello");
producer.send(message);
session.close();
conn.close();
}
public void receiveMsg() throws Exception {
Connection conn = new ActiveMQConnectionFactory("tcp://localhost:61616");
conn.start();
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = new ActiveMQQueue("mvc.queue");
MessageConsumer consumer = session.createConsumer(destination);
TextMessage message = (TextMessage) consumer.receive();
System.out.println(message.getText());
session.close();
conn.close();
}
定义JmsTemplate对象
Java配置
@Bean
public JmsTemplate jmsTemlate(ConnectionFactory connectionFactory, ActiveMQQueue queue) {
JmsTemplate template = new JmsTemplate(connectionFactory);
template.setDefaultDestination(queue);
return template;
}
XML配置
<bean id="jmsTemlate" class="org.springframework.jms.core.JmsTemplate" c:_-ref="connectionFactory" p:defaultDestination="queue"/>
使用JMS模板方式发送和接受消息
public void sendMsg() {
jmsOperations.send(new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
TextMessage message = session.createTextMessage();
message.setText("Hello Jms.");
return message;
}
});
}
public void receiveMsg() throws JMSException {
TextMessage message = (TextMessage) jmsOperations.receive();
System.out.println(message.getText());
}
使用Convert
public void sendMsg() {
jmsOperations.convertAndSend("Hello");
}
public void receiveMsg() {
String message = (String) jmsOperations.receiveAndConvert();
System.out.println(message);
}
待续...
【Java Web开发学习】Spring消息-ActiveMQ发送消息的更多相关文章
- 【Java Web开发学习】Spring MVC 使用HTTP信息转换器
[Java Web开发学习]Spring MVC 使用HTTP信息转换器 转载:https://www.cnblogs.com/yangchongxing/p/10186429.html @Respo ...
- 【Java Web开发学习】Spring JPA
[Java Web开发学习]Spring JPA 转载:https://www.cnblogs.com/yangchongxing/p/10082864.html 1.使用容器管理类型的JPA JND ...
- 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener
[Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- 【Java Web开发学习】Spring MVC文件上传
[Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...
- 【Java Web开发学习】Spring MVC异常统一处理
[Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...
- 【Java Web开发学习】Spring加载外部properties配置文件
[Java Web开发学习]Spring加载外部properties配置文件 转载:https://www.cnblogs.com/yangchongxing/p/9136505.html 1.声明属 ...
- 【Java Web开发学习】Spring环境profile
[Java Web开发学习]Spring 环境profile 转载:http://www.cnblogs.com/yangchongxing/p/8890702.html 开发.测试.生产环境往往是不 ...
- 【Java Web开发学习】Spring4整合thymeleaf视图解析
[Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...
- 【Java Web开发学习】Spring4条件化的bean
[Java Web开发学习]Spring4条件化的bean 转载:https://www.cnblogs.com/yangchongxing/p/9071960.html Spring4引入了@Con ...
随机推荐
- RabbitMQ学习笔记之五种模式及消息确认机制
本文详细介绍简单模式Simple.工作模式Work.发布订阅模式Publish/Subscribe.Topic.Routing. Maven依赖引用 <dependencies> < ...
- 精通awk系列(8):awk划分字段的3种方式
回到: Linux系列文章 Shell系列文章 Awk系列文章 详细分析awk字段分割 awk读取每一条记录之后,会将其赋值给$0,同时还会对这条记录按照预定义变量FS划分字段,将划分好的各个字段分别 ...
- linux内核的preempt抢占调度,preempt_count抢占保护“锁”
抢断调度,是调度机制对实时系统需要的支持,是一种快速响应的重调度机制.既然与重调度有关,那么就先回顾一下调度和重调度. 调度分两种情况,1. 一种是自愿调度,由代码主动调用schedule来让度cpu ...
- 如何打造一款m3u8视频爬虫
0.前言 m3u8是一种很常见的网页视频播放器的视频源,比如说中国大学MOOC中课程就是使用了该种视频格式. 随便打开一门课程,就可以发现在网络请求中存在一个m3u8的文件,在preview中预览,它 ...
- Android性能优化总结
合理的管理内存 节制地使用Service,尽量使用IntentService 避免在Bitmap上浪费内存,压缩图片处理 谨慎使用抽象编程 尽量避免会用依赖注入框架 使用ProGuard简化代码,好处 ...
- 性能测试——记weblogic 连接池满无法链接故障诊断过程
记weblogic 连接池满无法链接故障诊断过程 前段时间公司负责建行的一个票据系统在,上线前几个分行试运行环境下,每天后台日志都会报oracle.jdbc.xa.OracleXAException, ...
- 使用python删除N天前的文件
python版本为:2.7 import os import sys import time # Sets how many days old files are deleted DAYS_N = 7 ...
- Linux进阶文档丨阿里架构师十年Linux心得,全在这份文档里面
Linux是什么 Linux就是个操作系统: 它和Windows XP.Windows 7.Windows 10什么的一样就是一个操作系统而已! Linux能干什么: 它能当服务器,服务器上安装者各种 ...
- c语言作业07
问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...
- 「Python 编程」编码实现网络请求库中的 URL 解析器
摘要:怎么写出更短的代码并不是这次要讨论的话题.今天我们来研究一下:运行代码的计算机是如何找到目标服务器的? 相信各位 Python 开发者都用过 Requests 库,有些朋友还用过 WebSock ...