如何基于SpringAMQP创建消息队列?
首先导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
第一种方法
首先先创建一个新的类,然后输入以下代码
@Configuration
public class FanoutConfig {
turn new FanoutExchange("itcast.fanout");
}
//fanout.queue1 创建消息队列
@Bean
public Queue fanoutQueue1(){
return new Queue("fanout.queue1");
}
}
即可创建一个新的消息队列
那么如何创建一个新的交换机呢?
在同一个类中创建
@Configuration
public class FanoutConfig {
//jhj.fanout 交换机创建
@Bean
public FanoutExchange fanoutExchange(){
return new FanoutExchange("jhj.fanout");
}
}
以及完成了交换机与消息队列的绑定
@Configuration
public class FanoutConfig {
//jhj.fanout 交换机创建
@Bean
public FanoutExchange fanoutExchange(){
return new FanoutExchange("jhj.fanout");
}
//fanout.queue1 消息队列
@Bean
public Queue fanoutQueue1(){
return new Queue("fanout.queue1");
}
//绑定队列1到交换机
@Bean
public Binding fanoutBinding1(Queue fanoutQueue1,FanoutExchange fanoutExchange){
return BindingBuilder
.bind(fanoutQueue1)
.to(fanoutExchange);
}
//fanout.queue2 消息队列
@Bean
public Queue fanoutQueue2(){
return new Queue("fanout.queue2");
}
//绑定队列2到交换机
@Bean
public Binding fanoutBinding2(Queue fanoutQueue2,FanoutExchange fanoutExchange){
return BindingBuilder
.bind(fanoutQueue2)
.to(fanoutExchange);
}
}
第二种方法
直接在接收消息的类中创建消息队列和交换机,以及使它们绑定
@Component
public class SpringRabbitListener {
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = "direct.queue"),
exchange = @Exchange(name = "jhj.direct")
))
public void listenFanoutQueue(String msg){
System.err.println("欢迎紬紬到来(direct.queue): " + msg + "耗时: " + LocalTime.now());
}
}