RabbitMQ安装及整合Springboot的Demo

RabbitMQ:
1:安装erlang,http://www.erlang.org/downloads,设置ERLANG_HOME的环境变量,在path中国添加%ERLANG_HOME%/bin.cmd进入命令行控制台,输入erl,有版本相关信息则表示安装成功。
2:安装RabbitMQ,下载地址:http://www.rabbitmq.com,如果是windows系统,安装路径最好不能有空格。
3:在控制台下进入rabbitMQ的安装目录sbin目录下,运行rabbitmq-plugins enable rabbitmq_management,安装插件。
4:默认端口号是15672,用户名和密码都是guest,可以访问http://localhost:15672进入管理界面。

使用RabbitMQ的demo:
1:配置rabbitMQ信息
2;发送信息到rabbitMQ队列
3:监听指定队列,获取信息

pom.xml(引入jar)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
在application.properties文件中添加rabbitMQ的相关配置信息
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

1:配置rabbitMQ信息
RabbitMQConfig.java:
@Configuration
public class RabbitMQConfig {

@Value("${spring.rabbitmq.host}")
private String host;
@Value("${spring.rabbitmq.port}")
private String port;
@Value("${spring.rabbitmq.username}")
private String username;
@Value("${spring.rabbitmq.password}")
private String password;

@Bean
public ConnectionFactory connectionFactory() throws IOException {
CachingConnectionFactory factory = new CachingConnectionFactory();
factory.setUsername(username);
factory.setPassword(password);
factory.setHost(host);
factory.setPort(Integer.valueOf(port));
factory.setPublisherConfirms(true);
// 创建队列
factory.createConnection().createChannel(false).queueDeclare("test_queue", true, false, false, null);
return factory;
}

@Bean
public MessageConverter messageConverter() {
return new Jackson2JsonMessageConverter();
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE
// 初始化RabbitTemplate
public RabbitTemplate rabbitTemplate() throws IOException {
RabbitTemplate template = new RabbitTemplate(connectionFactory(););
template.setMessageConverter(new Jackson2JsonMessageConverter());
return template;
}
}

2:发送message到test_queue
RabbitMQMessage.java:
public class RabbitMQMessage
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message) {
//想指定的queue发送信息
rabbitTemplate.convertAndSend("", message);
}
}

3:监听指定的队列,获取信息
HandlerMessage.java:
@Component
public class QueueHandler {
// 监听指定的queue
@RabbitListener(queues = "test_queue")
public void handle( String message) {
System.out.println("获取信息:"+message);
}
}

接下来就是测试rabbitMQ了,创建一个Controller:
TestController.java:
@Autowired
RabbitMQMessage rabbit;
@PostMapping(value = "/rabbitMQ/send")
public void sendMessage()
{
rabbit.send("this is a rabbitMQ test.");
}

在控制台打印信息:
获取信息:this is a rabbitMQ test.





























猜你喜欢

转载自blog.csdn.net/weixin_40326509/article/details/80790652