> 文档中心 > SpringBoot整合ActiveMQ实现消息队列

SpringBoot整合ActiveMQ实现消息队列

首先我们要安装ActiveMQ

可以在官网下载https://activemq.apache.org/components/classic/download/

同时可以通过网盘下载

链接:https://pan.baidu.com/s/1podU4dQMau2x927OqsQsIg 
提取码:0011

里面有很多mq的技术比如Active,RabbitMQ,Kafka

下载完成安装后我们我们要做的事情就是启动ActiveMQ的服务

在bin目录下找到你电脑是多少位的双击activemq.bat就可以启动

 

 

 

 这里我们可以看到我们已经启动成功

它会给你一个访问服务器的地址去访问服务

 这里他要我们登录一下

账号和密码都是admin

 这个时候我们就成功访问到了active服务器

这个服务器是做什么的呢,这个等我们整合完后你就会明白

好了到这里我们的ActiveMQ安装就已经完成了

下面我们就来做springboot整合

 还是老套路 

1.导入 ActiveMQ的坐标

      org.springframework.boot     spring-boot-starter-activemq 

这样我们第一步就完成了

2.然后就是配置。告诉springboot你现在要用ActiveMQ这个消息队列技术

spring:  activemq:    broker-url: tcp://localhost:61616  jms:    template:      default-destination: hb

下面那个是你的消息队列放入的位置随便取一个名称

3.下面就是实现api了 

首先在业务中注入一个api用来操作消息的存入队列和处理消息

@Servicepublic class AcitiveMqImpl implements MessageService {@Autowiredprivate JmsMessagingTemplate jmsMessagingTemplate;    @Override    public void sendMessagemq(String id) { System.out.println("消息已经被放入消息队列 id:"+id);      jmsMessagingTemplate.convertAndSend(id);//可以指定消息放在队列中的位置    }    @Override    public String doMessage() { //接受消息处理 String id = jmsMessagingTemplate.receiveAndConvert(String.class); System.out.println("消息已经被处理id"+id); return id;    }}

对于 jmsMessagingTemplate.convertAndSend();这个方法是先转换成它能够接受的类型,再发送到消息队列中去。同时这个方法也可以再配置一个参数,指定这个消息发送到哪个队列。这和我们刚刚在配置中写的一样

 jms:    template:      default-destination: hb

下面处理消息的方法

jmsMessagingTemplate.receiveAndConvert(String.class);

这个方法作用是先接受再将消息转换成你需要的类型。这里的转换类型需要你去自己指定

好了我们业务层的代码已经写好了

我们再写一个Controller层

可以到对它进行测试

@RequestMapping("msgs")@RestControllerpublic class sendMQ {    @Autowired    private OrderServiceImpl orderService;    @PostMapping("{id}")    void sendMessage(@PathVariable String id){ orderService.order(id);    }}

 注意我在这里又写了一个业务层,通过这个业务层去调用发送消息到队列这个方法

@Servicepublic class OrderServiceImpl implements orderService{      @Autowired    private AcitiveMqImpl acitiveMq;      @Override    public void order(String id) { //处理消息进行一个模拟 System.out.println("订单处理开始");//这一步对消息进行处理 再创建一个业务专门对业务进行处理    acitiveMq.sendMessagemq(id); System.out.println("订单处理结束");    }}

 这个就是对于消息的处理了

@RequestMapping("dos")@RestControllerpublic class doMessage {@Autowiredprivate DealMessageImpl dealMessage;*/    @Autowired    private AcitiveMqImpl acitiveMq;    @GetMapping    String domessage(){ String id = acitiveMq.doMessage(); return id;    }}

好了到这里我们对于ActiveMQ的安装,和springbooot整合ActiveMQ已经完成了

其实很简单spring整合第三方技术很方便

香烟价格网