SpringBoot集成RabbitMQ和使用

1.pom依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.application.properties配置加入rabbitmq相关配置。

RabbitAutoConfiguration 类是其自动加载配置类。

# rabbitmq相关配置
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

3.关于配置,以上两步就完成了( Springboot 真的太方便了,写代码都是愉悦的)。正常使用时,若作为一个消费者,我们会配置一个接收队列,这里为了示例,直接以最小配置来演示下。

配置一个名为 okong 的队列  

@Configuration
public class RabbitConfig {
	
	/**
	 * 定义一个名为:oKong 的队列
	 * @return
	 */
	@Bean
	public Queue okongQueue() {
		return new Queue("okong");
	}
}

配置队列处理类,这里的队列就是上面配置的队列名称。:

Consumer.java

@Component
//@RabbitListener 监听 okong 队列
@RabbitListener(queues = "okong")
@Slf4j
public class Consumer {

	/**
	 * @RabbitHandler 指定消息的处理方法
	 * @param message
	 */
	@RabbitHandler
	public void process(String message) {
        log.info("接收的消息为: {}", message);
    }
}

编写消息发送类,这里直接写成api方法,方便调试。

DemoController.java

/**
 * 简单示例 发送和接收队列消息
 * @author oKong
 *
 */
@RestController
public class DemoController {
	
	//AmqpTemplate接口定义了发送和接收消息的基本操作,目前spring官方也只集成了Rabbitmq一个消息队列。。
	@Autowired
	AmqpTemplate rabbitmqTemplate;
	
	@GetMapping("/send")
	public String send(String msg) {
		//发送消息
		rabbitmqTemplate.convertAndSend("okong", msg);
		return "消息:" + msg + ",已发送";
	}
}

4.启动应用,正常配置成功,在 Rabbitmq 的控制台,是可以看见连接对象的。说明已经正常启动了

5.访问: http://127.0.0.1:8080/send?msg=hello,rabbitmq , 在控制台就可以看见消费者已经消费到此条消息了:

猜你喜欢

转载自blog.csdn.net/weixin_39643007/article/details/81989514