[Refactor/#12] Excel 서버 RabbitmqConfig, Producer, Consumer 수정
📋 구현 내용
RabbitmqProperty
객체를 통해 설정 파일(.yml)의 RabbitMQ 프로퍼티들을 관리하도록 수정 및 Producer, Consumer 인터페이스로 추상화
- 분리되어 있던 RabbitMQ 관련 프로퍼티 하나의 prefix로 통합
rabbitmq:
host: ${RABBITMQ_HOST}
port: ${RABBITMQ_PORT}
username: ${RABBITMQ_USER}
password: ${RABBITMQ_PASSWORD}
exchange:
file-create-progress-exchange: ${FILE_CREATE_PROGRESS_EXCHANGE}
queue:
file-create-request-queue: ${FILE_CREATE_REQUEST_QUEUE}
listener:
concurrency: ${LISTENER_CONCURRENCY}
max-concurrency: ${LISTENER_MAX_CONCURRENCY}
prefetch: ${LISTENER_PREFETCH}
- RabbitmqProperty 구현
-
기존
@Value
placeholder, SpEL 방식의 문제점-
@Value
방식을 통한 외부 설정값 주입은 타입 안정성 보장이 되지 않음 - 설정값이 추가 및 변경될 때마다, 설정 파일에서 작성한 값들을 사용하는 클래스 내에서 일일히 동일하게 작성해야 한다는 번거로움 발생
-
-
기존
- Producer, Consumer 인터페이스 추가
- Producer, Consumer 구현 클래스 추가(
FileCreateProgressProducer
,FileCreateRequestConsumer
) - Producer, Consumer, DTO 클래스 네이밍 통일
🔍 테스트 케이스
- 없음
📢 코멘트
- 설정 파일의 RabbitMQ 프로퍼티들을
RabbitmqProperty
에서 inner class로 매핑하였는데 더 좋은 방법이나 의견이 있으시면 코멘트 부탁드립니다. - API 서버 설정 파일도 동일하게 변경할 예정입니다.
Edited by 김우용