springboot整合activeMQ
来源:互联网 发布:验机软件 编辑:程序博客网 时间:2024/05/29 11:25
windows下 部署
1.activeMQ依赖于JDK,
2.解压/安装activeMQ的包,进入如下目录
3.activemq.bat双击启动脚本
如图表示启动成功,ActiveMQ默认启动到8161端口,启动完了后在浏览器地址栏输入:http://localhost:8161/admin要求输入用户名密码,默认用户名密码为admin、admin,这个用户名密码是在conf/users.properties中配置的。输入用户名密码后便可看到如下图的ActiveMQ控制台界面了
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
特性
- 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
- 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
- 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
- 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
- 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
- 支持通过JDBC和journal提供高速的消息持久化
- 从设计上保证了高性能的集群,客户端-服务器,点对点
- 支持Ajax
- 支持与Axis的整合
- 可以很容易的调用内嵌JMS provider,进行测试
更多关于 ActiveMQ 的内容可以点击这里。
springboot整合activeMQ
1.添加maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> </dependency>没有直接使用注释的依赖,是因为其含有如下依赖
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-broker</artifactId> </dependency>而它的作用是什么呢,会在程序中直接内嵌 ActivityMQ,也就是说不需要安装 ActiveMQ,但是这个如果服务宕机了,内嵌的 ActiveMQ 也就没了。关键,这个内嵌的 ActiveMQ 而无法看到图形化界面,所以这里没有直接使用注释里的依赖。
2.在application.properties中增加如下配置
## URL of the ActiveMQ broker. Auto-generated by default. For instance `tcp://localhost:61616`# failover:(tcp://localhost:61616,tcp://localhost:61617)# tcp://localhost:61616spring.activemq.broker-url=tcp://localhost:61616spring.activemq.user=adminspring.activemq.password=adminspring.activemq.in-memory=truespring.activemq.pool.enabled=falseActiveMQ 的端口做一个简短说明,61616为消息代理接口 ,8161 为管理界面
定义JMS
package com.fcc.common.config;import org.apache.activemq.ActiveMQConnectionFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jms.core.JmsMessagingTemplate;import javax.jms.ConnectionFactory;/** * @Author:FeiCongcong * @Date:2017/8/7 0007 14:46 */@Configurationpublic class JmsMessagingTemplateConfig { @Value("${spring.activemq.broker-url}") private String broker_url; @Value("${spring.activemq.in-memory}") private String in_memory; @Value("${spring.activemq.pool.enabled}") private String pool_enabled; @Bean("jmsMessagingTemplate")//注册bean给spring容器管理, public JmsMessagingTemplate jmsMessagingTemplate(){ JmsMessagingTemplate jmsMessagingTemplate=new JmsMessagingTemplate(); ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(broker_url); jmsMessagingTemplate.setConnectionFactory(connectionFactory); return jmsMessagingTemplate; }}消息生产者
package com.fcc.common.component;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.stereotype.Component;import javax.jms.Destination;/** * @Author:FeiCongcong * @Date:2017/8/7 0007 10:17 */@Componentpublic class MqProducerComponent { @Autowired // 也可以注入JmsTemplate,JmsMessagingTemplate对JmsTemplate进行了封装 private JmsMessagingTemplate jmsTemplate; // 发送消息,destination是发送到的队列,message是待发送的消息 public void sendMessage(Destination destination, final String message){ jmsTemplate.convertAndSend(destination, message); }}消息消费者
package com.fcc.common.component;import org.springframework.jms.annotation.JmsListener;import org.springframework.messaging.handler.annotation.SendTo;import org.springframework.stereotype.Component;/** * @Author:FeiCongcong * @Date:2017/8/7 0007 10:19 */@Componentpublic class MqCosumerComponent { // 使用JmsListener配置消费者监听的队列,其中text是接收到的消息 @JmsListener(destination = "mytest.queue") @SendTo("out.queue") public void receiveQueue(String text) { System.out.println("Consumer收到的报文为:"+text); }}测试类:
package com.fcc.web.controller;import org.apache.activemq.command.ActiveMQQueue;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.fcc.common.component.MqProducerComponent;import org.springframework.web.bind.annotation.ResponseBody;import javax.jms.Destination;/** * @Author:FeiCongcong * @Date:2017/8/7 0007 11:07 */@Controller@RequestMapping("MQ")public class MqController { @Autowired private MqProducerComponent mqProducerComponent; @RequestMapping("test") @ResponseBody public String mqTest(){ Destination destination = new ActiveMQQueue("mytest.queue"); for (int i = 0; i < 10; i++) { mqProducerComponent.sendMessage(destination, "myname is fcc!!!"); } return null; }}启动类加注解@EnableJms
@RestController@EnableAutoConfiguration//启用自动配置@ComponentScan(basePackages="com.fcc")//组件扫描@EnableJmspublic class MainWeb { public static void main(String[] args) throws Exception { SpringApplication.run(MainWeb.class, args); }}测试:浏览器请求 http://localhost:8092/MQ/test
控制台输出
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
Consumer收到的报文为:myname is fcc!!!
打开 ActiveMQ 的管理页面,
阅读全文
0 0
- springboot、mybatis、activemq整合
- SpringBoot 整合 Apache ActiveMQ
- springboot整合activeMQ
- springboot整合activemq
- Springboot整合ActiveMQ
- springboot整合多个activemq
- SpringBoot 整合ActiveMQ 小Demo
- SpringBoot-ActiveMq
- springboot activemq
- 整合ActiveMQ
- [ActiveMQ][SpringBoot]SpringBoot中集成ActiveMQ
- springboot整合activemq,应答模式,消息重发机制,消息持久化
- SpringBoot集成ActiveMQ
- Springboot集成activemq
- springboot集成activeMQ
- SpringBoot集成ActiveMQ
- SpringBoot-ActiveMQ(一)
- SpringBoot 集成 activeMQ
- java生成二维码并解析二维码(QRCode方式)
- 错误:the input device is not a TTY
- java ==和equals、equals和hashCode的区别
- TCP四次挥手
- 测试一下什么问题
- springboot整合activeMQ
- java基础学习总结——面向对象2
- 树梅派串口工具 minicom
- Java异常的深入研究与分析
- 一个给 Java 程序员用的 Api 文档生成工具
- 【瞎编初中趣味题】欧几里得铺地板
- Python读取word文档(python-docx包)
- 数据库表修复问题
- 神经网络与深度学习笔记(五)validation_data 的作用