Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_2 (gateway 사용)

2023. 2. 13. 23:57·공부/Spring
반응형

 

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Netflix Zuul - Filter 적용

강의에서는 Netflix Zuul을 사용해서 필터링했지만 나는 spring cloud gateway를 사용했다.

LogginFilter.java 생성

 

@Component // 일반적인 빈 형태
@Slf4j // jackson을 통한 logger 사용
public class LoggingFilter extends AbstractGatewayFilterFactory<LoggingFilter.Config> {

    @Data
    public static class Config {
        private String baseMessage;
        private boolean preLogger;
        private boolean postLogger;
    }

    public LoggingFilter() {
        super(Config.class);
    }

    @Override
    public GatewayFilter apply(Config config) {
        return (((exchange, chain) -> {
            ServerHttpRequest request = exchange.getRequest();
            ServerHttpResponse response = exchange.getResponse();

            log.info("Logging Filter baseMessage : {}", config.getBaseMessage());
            if(config.isPreLogger()) {
                // Custom Pre Filter
                log.info("Global Filter Start : request id -> {} ", request.getId());
            }

            //Custom Post Filter
            return chain.filter(exchange).then(Mono.fromRunnable(() -> {
                response.getStatusCode();
            }));
        }));
    }
}

 

application.yml 추가

spring:
	cloud:
    	gateway:
            default-filters:
              - name: LoggingFilter
                args :
                  baseMessage : test
                  preLogger : true
                  postLogger : true

 

크롬에서 확인

위 페이지로 접속하면 위에서 설정한 로그가 찍히는 걸 볼 수 있다.

 


- 출처 : 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Spring' 카테고리의 다른 글
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_4
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_3
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_1
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Service Discovery
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    방통대
    egov
    IT
    스프링부트
    전자정부프레임워크
    SQL
    토비의스프링부트
    Java
    oracle
    백준
    알고리즘
    인프런
    코딩테스트
    Spring
    RESTful
    기출문제
    토이프로젝트
    자바스크립트
    넥사크로
    프로그래머스
    JPA
    react
    MSA
    운영체제
    springboot
    개발자
    프론트엔드
    에러해결
    QueryDSL
    SpringBoot를 이용한 RESTful Web Service 개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_2 (gateway 사용)
상단으로

티스토리툴바