- 需要先安装rabbitMQ服务,自行百度!!!
- spring boot内部默认集成了RabbitMQ,导入依赖即可使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 导入依赖后我们在spring boot配置文件application.yml中配置rabbitMQ的连接参数
server:
port: 8080 #服务端口
spring:
application:
name: test_rabbitmq #工程名称
rabbitmq:
host: 127.0.0.1 #rabbitMQ IP地址
port: 5672 #rabbitMQ 默认端口
username: guest #rabbitMQ默认账号密码,也可自己创建账号
password: guest #
virtual-host: / #虚拟机 每个账号可以设置多个虚拟机,虚拟机相互独立工作
videoh:
mq:
queue: 111 #队列名称
routingKey: 111 #路由key
在需要的服务端和客户端中创建rabbitMQ配置类,
@Configuration
public class RabbitmqConfig {
//队列bean的名称
public static final String QUEUE_NAME="queue_name";
//交换机的名称
public static final String EXCHANGE_NAME="exchange_name";
//队列名称配置在yml配置文件中便于修改
@Value("${videoh.mq.queue}")
public String queue_videoh_name;
//路由key
@Value("${videoh.mq.routingKey}")
public String routingKey;
//声明交换机
/**
* ExchangeBuilder可以选择rabbitMQ的工作模式direct表示路由模式,rabbitmq提供了6中模式
* 通过路由key匹配consumer和producer相互连接
**/
@Bean(EXCHANGE_NAME)
public Exchange EXCHANGE_NAME(){
return ExchangeBuilder.directExchange(EXCHANGE_NAME).durable(true).build();
}
//声明队列
@Bean(QUEUE_NAME)
public Queue QUEUE_NAME(){
Queue queue = new Queue(queue_videoh_name);
return queue;
}
//队列绑定交换机
@Bean
public Binding BINDING_QUEUE(@Qualifier(QUEUE_NAME)Queue queue,
@Qualifier(EXCHANGE_NAME)Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with(routingKey).noargs();
}
}
- 最后使用spring模板就可以对rabbitMQ进行操作了
//依赖注入
@Autowired
RabbitTemplate rabbitTemplate;
@Test
public void test(){
String msg = "springboot整合rabbitmq";
//交换机名称,路由key,消息内容
rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_NAME,"routingKey",msg);
}
- 这样简单的spring boot整合rabbitmq就完成了