application.yml 配置 無需在yml 文件中配置 ack 等 屬性
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
複製代碼
初始化一個 rabbitmq 的配置組件
@Component
public class RabbitConfig {
}
複製代碼
配置消費者的 SimpleRabbitListenerContainerFactory
@Bean(name = "listenerContainer")
public SimpleRabbitListenerContainerFactory listenerContainer(){
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
return factory;
}
複製代碼
配置消費者監聽組件
@Component
public class RabbitListener{
}
複製代碼
消費者監聽配置
@RabbitListener(queues = "隊列名稱" ,containerFactory = "listenerContainer")
@RabbitHandler
public void ConsumeMessage(Channel channel, Message message) {
try {
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
} catch (Exception e) {
}
}
複製代碼
生產者無需處理是否確認消息