[java] 봄에 여러 @RequestMapping 주석을 사용하는 방법은 무엇입니까?

@RequestMapping메소드에 여러 주석 을 사용할 수 있습니까?

처럼 :

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
  return "welcome";
}



답변

@RequestMappingString[]값 매개 변수를, 그래서 당신은 다음과 같이 여러 값을 지정할 수 있어야한다 :

@RequestMapping(value={"", "/", "welcome"})


답변

내 테스트 (봄 3.0.5)에서 @RequestMapping(value={"", "/"})"/"작동 하지만 작동 ""하지 않습니다. 그러나 나는 이것이 작동 @RequestMapping(value={"/", " * "})한다는 것을 알았습니다 " * ".


답변

필요하지 않습니다. RequestMapping 주석은 와일드 카드 및 개미 스타일 경로를 지원합니다. 또한 기본보기를 원하는 것처럼 보이기 때문에

<mvc:view-controller path="/" view-name="welcome"/>

구성 파일에. 그러면 모든 요청이 루트로 환영보기로 전달됩니다.


답변

가장 짧은 방법은 다음과 같습니다. @RequestMapping({"", "/", "welcome"})

당신은 또한 할 수 있지만 :

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})

답변

현재 Spring-Boot 2.0.4를 사용하면 {}이 작동하지 않습니다.

@RequestMapping

여전히 값 매개 변수로 String []이 있으므로 선언은 다음과 같습니다.

 @RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)

** 업데이트-Spring-Boot 2.2에서 작동 **

 @RequestMapping(value={"/","/index","/login","/home"}, method = RequestMethod.GET)


답변

다음 사항도 허용됩니다.

@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath",
                     "/fixedPath/{some-name}/{some-id}/fixed" },
            produces = "application/json")

동일은에 적용 할 수 있습니다 @RequestMapping뿐만 아니라


답변

호출 된 URI를 계속 얻으려면 PathVariable 주석을 사용하는 것이 좋습니다.

@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}

또는 요청 객체에서 구문 분석하십시오.