Spring Cloud Gateway는 애플리케이션 실행 시 스프링부트에 내장되어 있는 Tomcat이 아닌 Netty 기반의 비동기 통신을 지원하는 형태의 웹 애플리케이션으로 실행된다. 분명 Spring Cloud Gateway 의존성을 추가해줬기 때문에 Netty로 실행되어야 하는데 여전히 Tomcat으로 실행된다... 간단하게 문제를 해결해보자.
문제 상황
환경
- Java 17
- SpringBoot 3.2.1
- Spring Cloud 2023.0.0
- gradle
분명 위와 같이 스프링부트 프로젝트를 생성할 때 Gateway dependency를 추가해준 후 프로젝트를 실행했지만, 아래와 같이 Tomcat이 애플리케이션을 구동한다.
뿐만 아니라 아래와 같이 Spring Cloud Gateway 라이브러리에 존재하는 객체들의 path들 또한 찾을 수 없다. 따라서 의존성 추가에 문제가 생기지 않았을까 생각했다.
해결
의존성을 관리하는 build.gradle
에서 아래의 spring-cloud-starter-gateway-mvc
가 implementation 되어있어 이를 spring-cloud-starter-gateway
로 수정하고 sync를 맞춰주었다.
그랬더니 올바르게 애플리케이션이 Netty로 실행됨을 확인할 수 있었고, 그 외 RouteLocator
와 같은 필요한 객체들도 정상적으로 Import 됨을 확인했다.
찾아보니 spring-cloud-starter-gateway-mvc
는 말그대로 spring-cloud-starter-gateway
의 mvc 부분만을 담당하는 것으로 보인다. 앞으로 프로젝트 생성 시 사소한 수정을 해줘야 하겠다!
'Server > Spring' 카테고리의 다른 글
[Spring] 스프링부트에서 출력되는 로그 레벨 변경하기 (0) | 2023.07.26 |
---|---|
[Spring] 스프링 간단 개념 정리 (0) | 2023.07.07 |
[Spring] return "redirect:/"과 return view 의 차이점 (0) | 2022.07.18 |