[SPRING] 스프링 MVC 요청 매핑 순서를 수정하는 방법은 무엇입니까?
SPRING스프링 MVC 요청 매핑 순서를 수정하는 방법은 무엇입니까?
다음 RequestMapping으로 실행중인 기존 Spring MVC 서비스가 있습니다.
@RequestMapping(value = "{user}/**", method = RequestMethod.GET)
이제 다음 RequestMapping을 사용하여 동일한 컨트롤러에 새 메서드를 추가해야합니다.
@RequestMapping(value = "api/{user}/**", method = RequestMethod.GET)
새 URL에 대해 테스트 할 때 Spring은 항상 첫 번째 함수를 선택하므로 두 번째 기능에 액세스 할 수 없습니다.
어쨌든 Spring에 새로운 "api"메소드를 사용할 수 있습니까? 내가 생각할 수있는 유일한 방법은 web.xml에 새 Java 서블릿을 만드는 것이지만 좀 더 간단하게하고 싶습니다. @Controller와 @Controller ( "api")를 사용하여 두 개의 다른 컨트롤러를 만들려고했으나 문제가 해결되지 않았습니다.
해결법
-
==============================
1.사용자의 매개 변수가 String이라고 가정하면 Spring은 사용자 api에 대해 호출 된 것으로 가정합니다.
사용자의 매개 변수가 String이라고 가정하면 Spring은 사용자 api에 대해 호출 된 것으로 가정합니다.
이것을 해결할 수있는 몇 가지 방법이 있습니다. 첫 번째 (그리고 최선)는 요청 매핑을 더 좁게 만드는 것입니다. 결국 "**"에 의존하는 대신 매핑을 완전히 지정하십시오.
두 번째 방법은 매핑에서 정규식을 사용하여 "api"사용자를 허용하지 않는 것입니다. 다음과 같은 것이 효과가있다.
@RequestMapping(value = "{user:[^a][^p][^i]}/**", method = RequestMethod.GET)
from https://stackoverflow.com/questions/22410609/how-to-correct-spring-mvc-requestmapping-order by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Boot @WebMvcTest를 사용하여 테스트 할 때 내 컨텍스트에서 다른 @Controller를 제외하는 방법 (0) | 2019.05.18 |
---|---|
[SPRING] 스프링 보안으로 MD5에서 BCrypt로 전환하기 (0) | 2019.05.18 |
[SPRING] WebSphere 7의 Spring (JSR 330 annotations)에 대한 종속성 삽입이 작동하지 않습니다. (0) | 2019.05.18 |
[SPRING] CXF 내의 JAX-RS REST 리소스에서 CXF 메시지 교환에 액세스하는 방법이 있습니까? (0) | 2019.05.18 |
[SPRING] 스프링 보안 OAuth2에서 커스텀 userDetailsService 주입 문제 (0) | 2019.05.17 |