queue模式下,有利于消息确定发往哪个消费者。而不是被随机消费。
@SpringBootApplication
public class App implements ApplicationRunner {
public static void main(String[] args) throws IOException {
SpringApplication.run(App.class, args);
}
@Autowired
private JmsTemplate jmsTemplate;
@JmsListener(destination = "test1",selector = "q='a'")
public void aaa1(String message) {
System.out.println("1接收到: " + message);
}
@JmsListener(destination = "test1",selector = "q='b'")
public void aaa2(String message) {
System.out.println("2接收到: " + message);
}
@Override
public void run(ApplicationArguments args) throws Exception {
MessagePostProcessor postProcessor = new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws JMSException {
message.setStringProperty("q", "a");
return message;
}
};
for (int i = 0; i < 10; i++) {
jmsTemplate.convertAndSend("test1", "111111111", postProcessor);
}
}
}