절대 JDK 21 + SpringBoot 3.4.*에 Swagger 2.6.0을 사용하지마

영석·2025년 2월 23일
post-thumbnail

SSAFY에서 프로젝트를 진행하다 생긴 일입니다.

🧐 왜 사용하면 안되나요?

Swagger-ui/index.html로 접속 후 API 문서조회를 한다면.
Swagger 500, 403 Error 가 발생합니다.

@ExceptionHandler 때문..?

사실 @ExceptionHandler 충돌 문제라고 치부하기보다는 버전 호환성 문제가 더 큽니다.
저희 팀에서는 @ExceptionHandler와 충돌이 난 것뿐이구요..

먼저 Spring Boot 3.X 버전에서는 @ExceptionHandler, @ControllerAdvice 등의
MVC 예외 처리 관련 코드가 충돌할 가능성이 큽니다.

SpringBoot 3.X 버전부터 @ExceptionHandler는 HandlerMethodArgumentResolver를 활용하는데
이전 Swagger 버전에서는 이를 제대로 지원하지 못해 예외 발생할 수 있기 때문입니다.

SpringBoot 3.x는 OpenAPI(Swagger 3.0)을 사용 할 것을 권장합니다.

🛠️ 해결방안은??

  1. springdoc-openapi를 사용하는 것을 권장합니다
  2. 2.7.0 버전으로 변경하시면 됩니다.
profile
느리게 갱신되는 개발실력 - >_0

0개의 댓글