• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

apigateway-service에서 @EnableDiscoveryClient 관련 질문드립니다.

23.01.09 12:09 작성 23.01.09 13:01 수정 조회수 446

0

안녕하세요! 먼저 좋은 강의 감사드립니다. 수강 중 궁금한 부분이 생겨 글 작성합니다.

user-service 프로젝트에서는 @EnableDiscoveryClient 을 추가해주었는데, apigateway-service와 catalog-service에서는 @EnableDiscoveryClient를 추가해주지 않아서 그 이유가 궁금하여 질문드립니다.

@EnableDiscoveryClient 는 eureka server에 등록하기 위한 어노테이션이라고 이해했습니다.

user-service 와 마찬가지로 apigateway-service, catalog-service에도 아래 설정은 추가되어서 eureka server에 등록되는 것이라고 생각하였는데 왜 위 어노테이션은 빠진 것인지 궁금했습니다! 그리고 위 어노테이션과 아래 설정의 정확한 의미 차이도 궁금합니다. 감사합니다!!

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true

답변 1

답변을 작성해보세요.

1

안녕하세요, 이도원입니다.

강의 중에서도 언급했던거 같은데, (아니면, 제가 다른 곳에서 얘기했던 것을 착각하고 있을 수도 있습니다) @EnableDiscoveryClient의 유무와 상관없이 pom.xml 파일에 eureka-client 라이브러리가 dependency로 추가되어 있으면, Spring Boot Context가 기동하면서 기본 설정 값으로 (register-with-eureka: true 등) 해당 애플리케이션을 Registry에 등록하게 됩니다. 자바에서는 @Annotation은 코딩을 양을 줄여주는 방법이기도 하지만, 클래스, 메소드, 필드에 부가적인 정보를 기술하는 용도로 사용될 수도 있기 때문에, 개인적인 생각으로 명시적인 @EnableDiscoveryClient를 선언하여 이 클래스는 Registry에 등록되는 서비스라고 선언해 주는 것이 코드의 가독성 및 이해를 높여주는 방법이라고 생각됩니다. 다음번 강의 업데이트에는 이 부분도 다시 잘 챙겨서 업데이트 하도록 하겠습니다.

감사합니다.