Spring Cloud Gateway Filter : Property

OH JU HYEON·2022년 7월 12일
1

MSA

목록 보기
5/7
post-thumbnail

Spring Cloud Gateway Filter : Property

시작

이전 글에서 Spring Cloud Gateway Filter에 대한 설정 방법을 적었었다. 이번에는 Property를 설정해줘서 Filter를 적용한다.

application.yml

server:
  port: 8000

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:8761/eureka

spring:
  application:
    name: apigateway-service
  cloud:
    gateway:
      routes:
        - id: first-service
          uri: http://localhost:8081/
          predicates:
            - Path=/first-service/**
          filters:
            - AddRequestHeader=first-request, first-request-header2
            - AddResponseHeader=first-response, first-response-header2
        - id: second-service
          uri: http://localhost:8082/
          predicates:
            - Path=/second-service/**
          filters:
            - AddRequestHeader=second-request, second-request-header2
            - AddResponseHeader=second-response, second-response-header2

Java Code로 하는 것 보다 비교적 간단하게 구현이 가능하다. 마지막 filtersAddRequestHeaderAddResponseHeader에 등록을 해 주면 된다.

의문

Java Code vs Property

이 부분에 대해서는 궁금해서 찾아봤는데 답변해주시는 선생님에 말씀을 요약하면 아래와 같다.

내부적인 처리 과정, 속도, 문제를 떠나 결정하는 요인은 작업의 스타일과 편의성으로 갈라진다고 한다.

Property에서 작업을 하면 작성하기 쉽고, 불필요한 자바 코드 없이 사용이 가능하며 어느 정도까지의 매핑 관계는 쉽게 파악이 가능하다는 장점이 있다.

Java Code로 작성을 하면 Java Compiler에 의해 문법적 오류를 찾을 수 있고 Bean Class가 제대로 매칭이 된 것인지도 구분할 수 있다는 장점이 있다.

만약 Gateway의 역할이 커지고, Routing의 양이 늘어난다면 Java Code로 구현하는 게 더 효율적이라고 생각한다.

해당 답변은 여기에서 확인할 수 있다.

profile
읽기만 해도 이해가 되는 글을 쓰기 위해 노력합니다.

0개의 댓글