springboot简单集成activemq简单示例
程序员文章站
2022-04-30 19:41:06
...
本文主要简单介绍消息服务在springboot中如何使用
1:引入pom依赖
<!--springboot集成jms依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
2:配置文件中配置连接信息
#activemq服务地址
spring.activemq.broker-url=tcp://192.168.58.128:61616
#消息目的地
spring.jms.template.default-destination=springboot-message
#消息发送方式 false:点对点模式 true:订阅模式
spring.jms.pub-sub-domain=true
3:发送消息核心代码
@Service
public class MessageSenderServiceImpl implements MessageSenderService {
@Value("${spring.jms.template.default-destination}")
private String destination;
/**
* 自动导入jms消息模板对象:同步接受
*/
@Autowired
private JmsTemplate jmsTemplate;
/**
* 发送消息无需返回值
* @param message
*/
@Override
public void sendMessage(String message) {
jmsTemplate.send(destination, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(message);
}
});
}
}
4:接收消息核心代码
(1)->使用同步方式接收
@Service
public class MessageReceiveServiceImpl implements MessageReceiveService {
@Value("${spring.jms.template.default-destination}")
private String destination;
/**
* 自动导入jms消息模板对象,此为同步接收消息
*/
@Autowired
private JmsTemplate jmsTemplate;
@Override
public void receiveMessage() {
Message receiveMessage = jmsTemplate.receive(destination);
if(receiveMessage instanceof TextMessage){
try {
String text = ((TextMessage) receiveMessage).getText();
System.out.println("接收到的消息为---》"+text);
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
(1)->使用异步方式接收
@Component
public class JmsListenerServiceImpl {
/**
* 异步接收消息 :jms监听器自动把消息注入到修饰的方法的参数message中,服务启动,进入监听
*/
@JmsListener(destination="${spring.jms.template.default-destination}")
public void receiveasyncMessage(Message message) {
if(message instanceof TextMessage){
try {
String text = ((TextMessage) message).getText();
System.out.println("监听方式接收到的消息为---》"+text);
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
上一篇: SpringBoot集成Dubbo
下一篇: php实现堆排序