ActiveMQ
配置类
@Configuration
@EnableJms
public class ActiveMQConfig {
@Bean
public Queue queue (){
return new ActiveMQQueue("springboot.queue");
}
@Bean
public JmsListenerContainerFactory jmsTopicListenerContainerFactory(ConnectionFactory connectionFactory){
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setPubSubDomain(true);
return factory;
}
@Bean
public Topic topic (){
return new ActiveMQTopic("springboot.topic");
}
}
生产者
@RestController
public class Producer {
@Autowired
private JmsMessagingTemplate jmsTemplete;
@Autowired
private Queue queue;
@Autowired
private Topic topic;
@GetMapping("/queue")
public void sendQueueMsg (String msg){
jmsTemplete.convertAndSend(queue, msg);
}
@GetMapping("/topic")
public void sendTopicMsg (String msg){
jmsTemplete.convertAndSend(topic, msg);
}
}
消费者
@Component
public class Consumer {
@JmsListener(destination = "springboot.queue")
public void ListenQueue (String msg){
System.out.println("接收到queue消息:"+msg);
}
@JmsListener(destination = "springboot.topic", containerFactory = "jmsTopicListenerContainerFactory")
public void ListenTopic (String msg){
System.out.println("接收到topic消息:"+msg);
}
}