//application.yml 文件配置
rabbitmq:
host: 116.62.155.356
port: 5672
username: asdad
password: 1232456
//接受者配置
@Configuration
public class RabbitConfig {
@Bean
public Queue queueMessages() {
return new Queue("testt1");
}
@Bean
TopicExchange exchange() {
return new TopicExchange("topic.message");
}
/**
* 将队列testt1与exchange绑定,binding_key为topic.message,就是完全匹配
* @param queueMessage
* @param exchange
* @return
*/
@Bean
Binding bindingExchangeMessage(Queue queueMessage, TopicExchange exchange) {
return BindingBuilder.bind(queueMessage).to(exchange).with("topic.message");
}
}
//接受者
@Component
@RabbitListener(queues = "testt1")
public class HelloReceiver {
@RabbitHandler
public void process(String hello) {
System.out.println("Receiver : " + hello);
}
}
发送者配置exchange管理
//发送者配置
@Configuration
public class RabbitConfig {
@Autowired
private RabbitTemplate rabbitTemplate;
@Bean
RabbitAdmin exchange() {
RabbitAdmin admin = new RabbitAdmin(rabbitTemplate.getConnectionFactory());
admin.declareExchange(new TopicExchange("topic.message"));
return admin;
}
}
//发送者
@Component
public class Sender1 {
/**
* 注入AmqpTemplate,然后利用AmqpTemplate向一个名为hello的消息队列中发送消息。
*/
@Autowired
private AmqpTemplate rabbitTemplate;
public void send(){
String msg="hello rabbitMQ:"+new Date()+" 你好,高级消息队列使用ing~";
System.out.println("单对单发送参数。Sender发出了消息:"+msg);
// this.rabbitTemplate.convertAndSend("hello",msg);
// 第一个参数表示交换机,第二个参数表示routing key,第三个参数即消息,Topic方式
this.rabbitTemplate.convertAndSend("topic.message","routing key",msg);
}
}