본문 바로가기
SPRINGBOOT

[SPRINGBOOT] spring.mvc.pathmatch.matching-strategy

by sum_mit45 2023. 11. 15.
728x90
반응형
 

[SPRINGBOOT 오류] 스프링부트 스웨거 오류org.springframework.context.ApplicationContextException: Failed to start be

[오류] org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 원인 - 이 오류 메시지는 스프링 애플리케이션 시작 중에 docume

sum-mit45.tistory.com

위의 이 오류를 해결하면서, spring.mvc.pathmatch.matching-strategy가 무엇인지에 대해 궁금해서 찾아본 내용을 정리한다. 

 

spring.mvc.pathmatch.matching-strategy의 값으로 ant_path_matcher path_pattern_parser를 설정하는 것은 Spring MVC에서 URL 패턴 매칭 전략을 지정하는 것이다. 두 가지의 차이점은 아래와 같다.

 

1. AntPathMatcher (ant_path_matcher):

  • 전략: Ant 스타일의 경로 패턴을 사용하여 URL을 매칭한다. 예를 들어, "/users/**"는 "/users/123"과 같은 패턴과 매칭됩니다.
  • 문법: Ant 경로 패턴 문법을 따른다다. 와일드카드(* 및 **) 사용하여 패턴을 정의한다.
  • 예시: /users/*, /users/**, /api/*/resource, 등

2. PathPatternParser (path_pattern_parser):

  • 전략: Spring 5부터 도입된 새로운 경로 패턴 매처이다. 경로 패턴 문법은 Ant 스타일과는 조금 다르다. 
  • 문법: 경로 구분자(/)를 사용하며, 와일드카드는 {*}, {**}와 같은 중괄호로 둘러싸인 형태로 사용됩니다.
  • 예시: /users/{id}, /api/{version}/resource, 등

이 중에서 어떤 것을 사용할지의 선택은 개발자의 취향과 프로젝트의 요구사항에 따라 다를 수 있다고 한다.

- ant_path_matcher는 기존의 스타일을 유지하면서 설정이 간단하고 익숙하다.

- path_pattern_parser는 경로에 대한 더 엄격한 구문 분석을 제공하고, 특히 RESTful API에서 더 세밀한 제어를 가능하는 경향이 있다. 

 

이 설정은 저번 글에서도 작성한 것처럼, application.yml 에서 할 수 있다. 이 설정은 Spring MVC가 URL 패턴 매칭을 어떤 전략으로 처리할지 결정한다. 이 값을 변경함으로써, 프로젝트에서 사용중인 URL 패턴의 문법을 조정할 수 잇다. 

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher #또는 path_pattern_parser
728x90
반응형