공부하는 키보드르륵/JAVA

[MSA] API Gate Way - Java로 설정

키보드르륵 2025. 4. 7. 22:50
반응형

 

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

 

반응형