package com.dxy.rabbit;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
* 自动配置原理
*
* 1、RabbitAutoConfiguration 自动配置类
* 2、自动配置了ConnectionFactory(CachingConnectionFactory)
* 3、RabbitProperties rabbit的配置类
* 4、配置RabbitTemplate :RabbitMQ模板工具了,用于发送接收消息
* 5、配置AmqpAdmin : RabbitMQ系统管理功能组件
* AmqpAdmin: 可用于创建和删除 Exchange、Queue、Binding
* 6、@EnableRabbit + @RabbitListener :监听消息队列
*/
@EnableRabbit //开启基于注解的RabbitMQ
@SpringBootApplication
public class SpringbootRabbitmqApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootRabbitmqApplication.class, args);
}
}
package com.dxy.rabbit.config;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyAMQPConfig {
@Bean
public MessageConverter messageConverter(){
System.out.println("MyAMQPConfig");
return new Jackson2JsonMessageConverter();
}
}
package com.dxy.rabbit.controller;
import com.dxy.rabbit.pojo.Book;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@RestController
public class RabbitController {
@Autowired
RabbitTemplate rabbitTemplate;
@GetMapping("/send")
public void sendMsgToQueue(){
// Map<String,Object> message = new HashMap<String,Object>();
// message.put