SpringBoot与RabbitMQ Direct模式
SpringBoot与RabbitMQ Direct模式
Demo
项目结构
![rabbitmq-direct](/assets/message-rabbitmq-direct-sp-f1de6539.png)
项目源码
package com.supremepole.d02directexchange;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class D02DirectExchangeApplication {
public static void main(String[] args) {
SpringApplication.run(D02DirectExchangeApplication.class, args);
}
}
package com.supremepole.d02directexchange;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectConfig {
public final static String DIRECTNAME = "direct";
@Bean
Queue queue() {
return new Queue("hello-queue");
}
@Bean
DirectExchange directExchange() {
return new DirectExchange(DIRECTNAME, true, false);
}
@Bean
Binding binding() {
return BindingBuilder.bind(queue())
.to(directExchange()).with("direct");
}
}
package com.supremepole.d02directexchange;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class DirectReceiver {
@RabbitListener(queues = "hello-queue")
public void handler1(String msg) {
System.out.println("DirectReceiver:" + msg);
}
}
server.port=8081
spring.rabbitmq.host=
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin