springboot 学习笔记(六)
2019-01-21 02:39:46来源:博客园 阅读 ()
(六)springboot整合activemq
1、现下载activemq,下载链接:http://activemq.apache.org/download.html,windows系统解压后进入bin目录,分32位、64位操作系统,运行activemq.bat启动程序,访问http://http://127.0.0.1:8161
出现该界面说明安装成功,点击broker,输入账号admin 密码admin 进入管理界面
点击queue按钮,可以创建消息队列。
2、pom文件中增加以下依赖,在application.properties对activema进行配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> </dependency>
#访问地址
spring.activemq.broker-url=tcp://127.0.0.1:61616
spring.activemq.user=admin
spring.activemq.password=admin
#是否开启线程池
spring.activemq.pool.enabled=true
#最大连接数
spring.activemq.pool.max-connections=50
3、在Application.class中添加如下代码,方便注入队列
package com.zc.app.test; import javax.jms.Queue; import org.apache.activemq.command.ActiveMQQueue; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class TestApplication { @Bean public Queue queue(){ return new ActiveMQQueue("test.queue"); } public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } }
4、新建一个service接口用来发送消息,并实现发送消息
/** * */ package com.zc.app.test.service; import javax.jms.Destination; public interface MsgService { public void sendMessage(Destination destination,String message); public void sendMessage(String message); }
/** * */ package com.zc.app.test.service.impl; import javax.jms.Destination; import javax.jms.Queue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.stereotype.Service; import com.zc.app.test.service.MsgService; @Service public class MsgServiceImpl implements MsgService{ @Autowired private Queue queue; @Autowired private JmsMessagingTemplate jms; //用来发送消息 @Override public void sendMessage(Destination destination,String message) { jms.convertAndSend(this.queue, message); } @Override public void sendMessage(String message) { jms.convertAndSend(message); } }
5、写controller来调用接口
/** * */ package com.zc.app.test.controller; import javax.jms.Destination; import org.apache.activemq.command.ActiveMQQueue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zc.app.test.service.MsgService; @RestController @RequestMapping("/msg") public class SendController { @Autowired private MsgService msgService; @GetMapping("send") public String order(String message) { Destination destination = new ActiveMQQueue("test.queue"); msgService.sendMessage(destination, message); return "send message success"; } }
6、启动程序,这时程序出现错误,提示JmsMessagingTemplate注入失败
Field jms in com.zc.app.test.service.impl.MsgServiceImpl required a bean of type 'org.springframework.jms.core.JmsMessagingTemplate' that could not be found.
7、通过测试,将acticemq线程池配置删除后,程序可以正常启动,最后找到原因是因为少了jms的pool依赖包,在pom文件添加以下依赖后可以正常启动
<dependency> <groupId>org.messaginghub</groupId> <artifactId>pooled-jms</artifactId> </dependency>
8、然后访问url:localhost:8080/msg/send?message=124515,提示成功后,可以从activemq的管理界面看到test.queue消息增加
原文链接:https://www.cnblogs.com/codingstudy/p/10281026.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- Java学习之第二天 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash