54 lines
1.9 KiB
Java
54 lines
1.9 KiB
Java
package com.bwie.auth.config;
|
||
|
||
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
||
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
|
||
import org.springframework.amqp.rabbit.core.RabbitAdmin;
|
||
import org.springframework.beans.factory.annotation.Value;
|
||
import org.springframework.context.annotation.Bean;
|
||
import org.springframework.context.annotation.Configuration;
|
||
|
||
/**
|
||
* RabbitAdmin是RabbitMQ的一个Java客户端库,它提供了管理RabbitMQ资源的功能。它是通过与RabbitMQ服务器进行交互来执行管理操作的。
|
||
*/
|
||
@Configuration
|
||
public class RabbitAdminConfig {
|
||
|
||
@Value("${spring.rabbitmq.host}")
|
||
private String host;
|
||
@Value("${spring.rabbitmq.username}")
|
||
private String username;
|
||
@Value("${spring.rabbitmq.password}")
|
||
private String password;
|
||
@Value("${spring.rabbitmq.virtualhost}")
|
||
private String virtualhost;
|
||
|
||
/**
|
||
* 构建 RabbitMQ的连接工厂
|
||
* @return
|
||
*/
|
||
@Bean
|
||
public ConnectionFactory connectionFactory() {
|
||
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
|
||
connectionFactory.setAddresses(host);
|
||
connectionFactory.setUsername(username);
|
||
connectionFactory.setPassword(password);
|
||
connectionFactory.setVirtualHost(virtualhost);
|
||
// 配置发送确认回调时,次配置必须配置,否则即使在RabbitTemplate配置了ConfirmCallback也不会生效
|
||
connectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.CORRELATED);
|
||
connectionFactory.setPublisherReturns(true);
|
||
return connectionFactory;
|
||
}
|
||
|
||
/**
|
||
* 自己初始化 RabbitAdmin
|
||
* @param connectionFactory
|
||
* @return
|
||
*/
|
||
@Bean
|
||
public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
|
||
RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);
|
||
rabbitAdmin.setAutoStartup(true);
|
||
return rabbitAdmin;
|
||
}
|
||
}
|