Springboot整合ActiveMQ实现消息队列的过程浅析
目录
- pom中导入坐标
- 书写yml配置
- 业务层代码
- 监听器代码
- 业务层代码
确保你启动了自己电脑的activemq。
pom中导入坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
书写yml配置
spring:
activemq:
broker-url: tcp://localhost:61616
jms:
template:
default-destination: my #消息队列的默认名字
pub-sub-domain: false #是否开启消息订阅模式
业务层代码
@Service public class MessageServiceActive implements MessageService { @Autowired private JmsMessagingTemplate template; @Override public void getMessage(String id) { template.convertAndSend("AA",id); //自定义消息队列名字 System.out.println("待发送短信的订单已纳入处理队列,id:"+id); } @Override public String doMessage() { String id=template.receiveAndConvert("AA",String.class); return id; }
此时,你书写控制层代码就可以实现消息队列了,不过有一个缺陷,那就是处理消息的时候必须手动书写网址,调用执行对应的方法才可以,不过我们可以通过监听器来实现自动化,就是一旦有消息产生就会立即处理。
监听器代码
@Component public class MessageListener { @Autowired private JmsMessagingTemplate template; @JmsListener(destination = "AA") //要监听的消息队列名称 @SendTo(value = "BB") //自动化处理完,还可以把该消息传递给下一了消息队列 public String receive(){ String id=template.receiveAndConvert("AA",String.class); System.out.println("已完成短信发送业务,id:"+id+"\n"); return "new_"+id; //利用返回值转发给下一个 } }
业务层代码
@Service public class MessageServiceActive implements MessageService { @Autowired private JmsMessagingTemplate template; @Override public void getMessage(String id) { template.convertAndSend("AA",id); System.out.println("待发送短信的订单已纳入处理队列,id:"+id); } }
这样我们的消息就可以流水线似的处理了,这是点对点的消息队列方式,还有订阅式的。
到此这篇关于Springboot整合ActiveMQ实现消息队列的过程浅析的文章就介绍到这了,更多相关Springboot整合ActiveMQ内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)