第四章 ActiveMQ 与 SpringBoot 集成
4-1 ActiveMQ 与 SpringBoot 集成集成配置
1、加载 spring boot 的 activeMQ 的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
2、编写一个消息发送者
@Component
public class MessageSender {
@Autowired //注入JmsTemplate
public class MessageSender {
private JmsTemplate jmsTemplate;
//发送消息, destination是发送到的队列, message是待发送的消息
public void sendMessage(String message) {
jmsTemplate.send("myQueue", new MessageCreator() {
@Override
public Message createMessage(Session session) throws
JMSException {
return session.createTextMessage(message);
}
});
}
}
}
3、编写一个消息接收者
@Component
public class MessageReceiver {
@Autowired
private JmsTemplate jmsTemplate;
// 发送消息, destination是发送到的队列, message是待发送的消息
public void receiveMessage() throws JMSException{
Message message = jmsTemplate.receive("myQueue"); if (message instanceof TextMessage) {
System.out.println(((TextMessage)message).getText());
}
}
}
application.perperties 配置连接信息;
4-2 ActiveMQ 与 SpringBoot 集成点对点消息
同步接收 异步接收
4-3 ActiveMQ 与 SpringBoot 集成发布订阅消息
1、加载 spring boot 的 ActiveMQ 的依赖 2、编写一个消息发布者 3、编写一个消息订阅者 Spring boot 集成 activemq 默认是采用点对点方式,要使用发布订阅方式 ,需要在核心配置文件中配置:spring.jms.pub-sub-domain=true
4-4 ActiveMQ 与 SpringBoot 集成同步/异步接收消息
@Configuration
public class ActiveMQConfig {
@Autowired
private ActiveMQConnectionFactory jmsConnectionFactory; @Bean
public DefaultMessageListenerContainer
defaultMessageListenerContainer() {
DefaultMessageListenerContainer
defaultMessageListenerContainer = new
DefaultMessageListenerContainer();
defaultMessageListenerContainer.setConnectionFactory(jmsConnec tionFactory);
defaultMessageListenerContainer.setDestinationName("myQueue");
defaultMessageListenerContainer.setMessageListener(new MyMessageListener());
return defaultMessageListenerContainer;
}
}
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
String text = null;
try {
text = ((TextMessage) message).getText(); } catch (JMSException e) {
e.printStackTrace();
}
System.out.println("接收到的消息为: " + text);
}
}
}
标签:SpringBoot,boot,节点,message,ActiveMQ,public,defaultMessageListenerContainer
From: https://blog.51cto.com/u_16033248/6313907