【发布时间】:2017-08-17 17:23:31
【问题描述】:
我有两个不同的应用程序用于发送者和接收者。
发件人:
@SpringBootApplication
public class RabbitJmsApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(RabbitJmsApplication.class, args);
}
@Autowired
private JmsTemplate template;
@Autowired
private JmsTemplate topicTemplate;
@Override
public void run(String... arg0) throws Exception {
for (int i = 0; i < 10; i++) {
template.convertAndSend("my_queue", "msg_" + i);
Thread.sleep(100);
}
for (int i = 0; i < 10; i++) {
topicTemplate.convertAndSend("my_topic", "topic_msg_" + i);
Thread.sleep(100);
}
}
@Bean
public RMQConnectionFactory connectionFactory() {
return new RMQConnectionFactory();
}
@Bean
public JmsTemplate template() {
return new JmsTemplate(connectionFactory());
}
@Bean
public JmsTemplate topicTemplate() {
final JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory());
jmsTemplate.setPubSubDomain(true);
return jmsTemplate;
}
}
和接收者:
@Component
public class Listener {
@JmsListener(destination = "my_queue")
public void receive(String str){
System.out.println(str);
}
@JmsListener(destination = "my_topic")
public void receiveTopic(String str){
System.out.println(str);
}
}
我明白了
msg_1
msg_2
...
在接收器上,但我没有看到主题消息。
我做错了什么?
附言
管理控制台:
【问题讨论】:
标签: java rabbitmq jms spring-jms