springboot实现rabbitmq的队列初始化和绑定

网友投稿 665 2023-01-21


springboot实现rabbitmq的队列初始化和绑定

配置文件,在rabbit中自动建立exchange,queue和绑定它们的关系

代码里初始化exchange

代码里初始化queue

代码里绑定exchange,queue和routekey

配置文件,直接声明vhost

代码里初始化exchange

/**

* rabbitMq里初始化exchange.

*

* @return

*/

@Bean

public TopicExchange crmExchange() {

return new TopicExchange(EXCHANGE);

}

代码里初始化queue

/**

* rabbitMq里初始化队列crm.hello.

*

* @return

*/

@Bean

public Queue helloQueue() {

return new Queue(HELLO);

}

代码里绑定exchange,queue和routekey

/**

* 绑定exchange & queue & routekey.

*

* @param queueMessage 队列

* @param exchange 交换机

* @param routekey 路由

* @return

*/

public Binding bindingExchange(Queue queueMessage, TopicExchange exchange, String routekey) {

return BindingBuilder.bind(quLfDnNeueMessage).to(exchange).with(routekey);

}

配置文件

spring:

rabbitmq:

host: localhost

port: 5672

username: guest

password: guest

virtual-host: lind

完整代码

package com.lind.microservice.productCenter.mq;

import org.springframework.amqp.core.Binding;

import org.springframework.amqp.core.BindingBuilder;

import org.springframework.amqp.core.Queue;

import org.springframework.amqp.core.TopicExchange;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* amqp配置.

*/

@Configuration

public class AmqpConfig {

/**

* 交换机.

*/

public final static String EXCHANGE = "crm";

/**

* hello队列.

*/

public final static String HELLO = "crm.hello";

/**

* 建立订单队列.

*/

public final static String LIND_GENERATE_ORDER = "crm.generate.order";

/**

* 绑定exchange & queue & routekey.

*

* @param queueMessage 队列

* @param exchange 交换机

* @param routekey 路由

* @return

*/

public Binding bindingExchange(Queue queueMessage, TopicExchange exchange, String routekey) {

return BindingBuilder.bind(queueMessage).to(exchange).with(routekey);

}

/**

* rabbitMq里初始化exchange.

*

* @return

*/

@Bean

public TopicExchange crmExchange() {

return new TopicExchange(EXCHANGE);

}

/**

* rabbitMq里初始化队列crm.hello.

*

* @return

*/

@Bean

public Queue helloQueue() {

return new Queue(HELLO);

}

/**

* rabbitMq里初始化队列crm.generate.order.

*

* @return

*/

@Bean

public Queue orderQueue() {

return new Queue(LIND_GENERATE_ORDER);

}

}

队列发布者

package com.lind.microservice.productCenter.mq;

import java.util.Date;

import org.springframework.amqp.core.AmqpTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Configuration;

@Configuration

public class HelloPublisher {

@Autowired

AmqpTemplate rabbitTemplate;

@Autowired

AmqpConfig amqpConfig;

public void hello() {

String context = "hello " + new Date();

System.out.println("HelloPublisher : " + context);

amqpConfig.bindingExchange(

amqpConfig.helloQueue(),

amqpConfig.crmExchange(),

"crm.hello.#"

);

this.rabbitTemplate.convertAndSend(http://AmqpConfig.EXCHANGE, AmqpConfig.HELLO, context);

}

}

队列订阅者

package com.lind.microservice.productCenter.mq;

import org.springframework.amqp.rabbit.annotation.RabbitHandler;

import org.springframework.amqp.rabbit.annotation.RabbitListener;

import org.springframework.stereotype.Component;

@Component

@RabbitListener(queues = AmqpConfig.HELLO)

public class HelloSubscriber {

@RabbitHandler

public void process(String hello) {

System.out.println("HelloSubscriber : " + hello);

}

}

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java下载安装和环境变量配置图文教程
下一篇:java 抽象类实现接口(java抽象类实现接口)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~