- Spring AMQP 라이브러리에서 제공하는 클래스로, 메시지 브로커인 RabbitMQ에서 사용하는 다양한 타입의 Exchange를 쉽게 생성할 수 있도록 도와줍니다.
- Exchange는 메시지를 받아서 하나 이상의 큐에 전달하는 역할을 합니다. - ExchangeBuilder 클래스는 다양한 static 메소드를 제공합니다. 이들 메소드는 각각 다른 타입의 Exchange를 생성하는 데 사용됩니다. - 예를 들어, ExchangeBuilder.directExchange("myExchange") 메소드는 Direct 타입의 Exchange를 생성하고, ExchangeBuilder.topicExchange("myExchange") 메소드는 Topic 타입의 Exchange를 생성합니다. - 이 외에도 Fanout, Headers 타입의 Exchange를 생성하는 메소드도 제공합니다. 이렇게 생성된 Exchange 객체는 durable(true), autoDelete(false) 등의 메소드를 통해 추가적인 옵션 설정이 가능합니다.
- Exchange 종류 중 Direct Exchange를 이용하여 구성합니다. - 다양한 속성은 아래와 같은 형태로 구성합니다.
/**
* Direct Exchange 구성
*
* @return
*/
@Bean
DirectExchange directExchange() {
// direct.exchange 이름의 Direct Exchange 구성
return ExchangeBuilder
// 1. Direct Exchange 설정 및 이름 설정
.directExchange("exchange.direct")
// 2. Exchange 지속성 설정
.durable(true)
// 3. 자동 삭제 여부 설정
.autoDelete()
// 4. 관리자 설정
.admins("admin1", "admin2")
// 5. Exchange 속성 설정
.withArgument("key", "value")
// 6. 지연 설정
.delayed()
// 7. 선언 시 속성 불일치 등 예외 무시
.ignoreDeclarationExceptions()
.build();
}