集成springboot


1

<!--整合rabbitmq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
rabbitmq:
host:
port: 5672
username:
password:
virtual-host:
connection-timeout:
消息队列基本配置

默认的主机是/
也可以自己建虚拟主机,回头看看是怎么用的。
package com.mfl.demo.utils;
import com.mfl.demo.entity.Order;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessageProducerUtils {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(Order order) throws Exception{
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
System.out.println("correlationData:"+correlationData);
if(ack){
System.out.println("回调成功--------");
}else {
System.out.println("回调失败,异常处理............."+cause);
}
});
CorrelationData correlationData = new CorrelationData();
correlationData.setId(order.getMessageId());
rabbitTemplate.convertAndSend("mfl-1-exchange", //交换机
"order.abcd",//rountingKey
order,//消息内容
correlationData);//消息唯一id
}
}回调函数需要在生产者代码配置文件里配置
spring.rabbitmq.publisher-confirm-type=correlated
cunsumer的基本目录结构
基本项目结构
application.properties中的配置
spring.rabbitmq.addresss=127.0.0.1:5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.connection-timeout=15000
server.servlet.context-path=/
server.port=8001
spring.http.encoding.charset=UTF-8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.default-property-inclusion=NON_NULL
producer配置
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.26</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置好rabbitmq的地址
spring-boot-starter-amqp rabbitmq的依赖
commons-lang3
commons-io
fastjson com.alibaba
准备的配置
SpringBoot Producer配置
引入commons等依赖
引入amqp依赖
New Spring Starter Project
RabbitMQ整合SpringBoot2.x步骤

springboot 非空json配置
spring.rabbitmq.address=192.168.131.128:5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.connection-timeout=15000
server.servlet.context-path=/
server.port=8001
spring.http.encoding.charset=UTF-8
spring.jackson.data-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.default-property-inclusion=NON_NULL
springboot整合rabbitmq的producer的配置