准备工作
创建一个 spring boot 项目
配置Erlang
安装RabbitMQ
Erlang RabbitMQ 推荐这个博主:https://www.cnblogs.com/ericli-ericli/p/5902270.html
(创建用户,密码,绑定角色 以下的可配置 也可不配置)
第一步: pom.xml 中 加入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
第二步: 添加 rabbitMQ配置 ( application.yml 或者 application.properties) (guest 是默认账户)
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
publisher-confirms: true
第三步 : 在启动类加上 @EnableRabbit (不加也可以)
@SpringBootApplication
@EnableRabbit
public class SpringBootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
第四步 : 生产者代码
- 配置消息队列
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//队列
@Configuration
public class SenderConf {
@Bean
public Queue queue() {
return new Queue("queue");
}
}
发送消息 (“queue” 是上面创建的消息队列 意思把消息放到该消息队列中 等待消费者 消费)
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class HelloSender {
@Autowired
AmqpTemplate amqpTemplate;
public void send() {
amqpTemplate.convertAndSend("queue", "hello,rabbit~---------------------");
System.out.println("我发送了一条消息");
}
}
第五步 消费者消费
消费者配置pom 和 配置文件和生产者的配置一致即可
只需要编写消费者代码即可
import java.util.Date;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
@Service
//监听 消息队列
public class HelloAccept {
@RabbitListener(queues = "queue")
public void receive(String msg) {
System.out.println("消费者收到了一个消息: " + msg + " " + new Date().getTime());
}
}
//注意 两个项目时 注意端口别冲突了(低级错误)
效果: