이전 글에서 Spring Cloud Gateway Filter에 대한 설정 방법을 적었었다. 이번에는 Property를 설정해줘서 Filter를 적용한다.
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로 하는 것 보다 비교적 간단하게 구현이 가능하다. 마지막 filters
에 AddRequestHeader
와 AddResponseHeader
에 등록을 해 주면 된다.
이 부분에 대해서는 궁금해서 찾아봤는데 답변해주시는 선생님에 말씀을 요약하면 아래와 같다.
내부적인 처리 과정, 속도, 문제를 떠나 결정하는 요인은 작업의 스타일과 편의성으로 갈라진다고 한다.
Property에서 작업을 하면 작성하기 쉽고, 불필요한 자바 코드 없이 사용이 가능하며 어느 정도까지의 매핑 관계는 쉽게 파악이 가능하다는 장점이 있다.
Java Code로 작성을 하면 Java Compiler에 의해 문법적 오류를 찾을 수 있고 Bean Class가 제대로 매칭이 된 것인지도 구분할 수 있다는 장점이 있다.
만약 Gateway의 역할이 커지고, Routing의 양이 늘어난다면 Java Code로 구현하는 게 더 효율적이라고 생각한다.
해당 답변은 여기에서 확인할 수 있다.