首先我们要安装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的坐标
<!-- 整合ActiveMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
这样我们第一步就完成了
2.然后就是配置。告诉springboot你现在要用ActiveMQ这个消息队列技术
spring:
activemq:
broker-url: tcp://localhost:61616
jms:
template:
default-destination: hb
下面那个是你的消息队列放入的位置随便取一个名称
3.下面就是实现api了
首先在业务中注入一个api用来操作消息的存入队列和处理消息
@Service
public class AcitiveMqImpl implements MessageService {
@Autowired
private 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")
@RestController
public class sendMQ {
@Autowired
private OrderServiceImpl orderService;
@PostMapping("{id}")
void sendMessage(@PathVariable String id){
orderService.order(id);
}
}
注意我在这里又写了一个业务层,通过这个业务层去调用发送消息到队列这个方法
@Service
public 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")
@RestController
public class doMessage {
@Autowired
private DealMessageImpl dealMessage;*/
@Autowired
private AcitiveMqImpl acitiveMq;
@GetMapping
String domessage(){
String id = acitiveMq.doMessage();
return id;
}
}
好了到这里我们对于ActiveMQ的安装,和springbooot整合ActiveMQ已经完成了
其实很简单spring整合第三方技术很方便