[MSA] API Gate Way - Java로 설정

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 | Dowon Lee - 인프런
Dowon Lee | , 클라우드 네이티브 아키텍처를 구축하고, 마이크로서비스 앱 개발에 도전하세요! 🚧 [사진] IT 시스템에는 매년 수많은 기술이 생겨나고, 사라지고 있습니다. 새롭게 출시된 개념이나
www.inflearn.com
로 공부한 것을 정리한 내용입니다.
앞서 ApiGateWay의 routes를 yml을 사용하여 설정하는 방법을 알아봤고 이번에는 Java로 설정하는 방법을 알아 보려고 합니다.
2025.04.01 - [공부하는 키보드르륵/JAVA] - [MSA] API Gate Way - 시작하기
[MSA] API Gate Way - 시작하기
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 | Dowon Lee - 인프런Dowon Lee | , 클라우드 네이티브 아키텍처를 구축하고, 마이크로서비스 앱 개발에 도전하세요! 🚧 [사진] IT 시스템
keyborddrizzle.tistory.com
Java로 설정하는 방법은 yml로 설정한 내용을 Java로 옮긴다고 생각하면 됩니다.
Java로 설정하는 방법
1. confilg 폴더 생성 후 FilterConfig class 파일 생성

2. yml 파일에 설정된 정보 주석 처리

3. FilterConfig 파일 작성

package com.msa.inflearn.apigatewayservcer.config;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
// 현재 파일이 Configuration이라고 설정
@Configuration
public class FilterConfig {
// Spring 컨테이너가 관리하는 객체라는 설정
@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
return builder.routes()
// /first-service/ 로 시작하는 경우 http://localhost:8081 로 보냄
.route(r -> r.path("/first-service/**")
// filter 처리로 addRequestHeader -> RequestHeader에 'first-request' 이름으로 'first-request-header-by-java' 추가
.filters(f -> f.addRequestHeader("first-request", "first-request-header-by-java")
// filter 처리로 addResponseHeader -> Response에 'first-response' 이름으로 'first-response-header-by-java' 추가
.addResponseHeader("first-response", "first-response-header-by-java")
)
.uri("http://localhost:8081"))
// /second-service/ 로 시작하는 경우 http://localhost:8082 로 보냄
.route(r -> r.path("/second-service/**")
.filters(f -> f.addRequestHeader("second-request", "second-request-header-by-java")
.addResponseHeader("second-response", "second-response-header-by-java")
)
.uri("http://localhost:8082"))
.build();
}
}
※ 만일 RouteLocator나 RouteLocatorBuilder 가 Import 되지 않는 경우 아래 내용을 참고 하면 된다.
2025.04.01 - [공부하는 키보드르륵/JAVA] - [MSA] Spring Cloud Gateway vs Spring Cloud Gateway MVC
[MSA] Spring Cloud Gateway vs Spring Cloud Gateway MVC
Spring Cloud GatewayNetty 서버를 사용하여 Reactor 기반이며 비동기적으로 동작하고 application.yml에서 정의한 비동기식 설정이 자연스럽게 작동할 수 있습니다. Spring Cloud Gateway MVC전통적인 Spring MVC 방
keyborddrizzle.tistory.com