• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Spring Boot 2.6 이상 버전에서의 DispatcherServlet

22.04.26 21:01 작성 조회수 213

0

안녕하세요 강사님!

실무에서 강사님의 강의를 들으며 많은 도움을 받고 있는 쥬니어 개발자입니다.

다름이 아니라 Spring Boot 로 된 프로젝트를 진행하며 DispatcherServlet에 대해 의문점이 생겨 질문을 남겨봅니다.

개발 중 Filter 부분에서 HttpServletRequest가 어떤 Handler에 맵핑 되었는지 확인해야 할 일이 생겨 HandlerMapping 인터페이스의 getHandler 메소드를 사용하여 해결하였습니다. 하지만 문제는 개인적으로 진행하는 토이프로젝트에서는 같은 로직으로 구현하였을 때 에러가 발생하였습니다. 좀 더 구글링해본 결과 2.6 이상 버젼에서 발생하는 문제로 Matching-Strategy가 달라 발생한 문제라고 하여 기본값을 ant-path-matcher 로 바꿔 해결하였습니다.

 여기서 저의 의문점은 2.6 버젼 이상에서의 PathPatternParser 맵핑 기반 DispatcherServlet은 기존 방식의 Handler를 가져오는 방식과 달라진걸까요? 요청이 들어왔을 때 DispatcherServlet이 가지고 있는 모든 Mapping객체들을 for 문을 통해 getHandler를 호출해보아도 핸들러가 반환되지 않고 구글링해봐도 딱히 자료가 없어 이렇게 여쭙습니다.

긴글 읽어주셔서 감사합니다.

답변 1

답변을 작성해보세요.

0

getHandler를 요청했을 때 반환되는 핸들러가 없다면 해당 요청은 처리가 되지 않았을텐데 맞나요? 요청이 처리되는 상황이라면 분명 반환되는 핸들러가 있을 겁니다.