programing

@RequestMapping 주석의 경로 속성과 값 속성의 차이

shortcode 2023. 2. 23. 23:19
반응형

@RequestMapping 주석의 경로 속성과 값 속성의 차이

다음 두 가지 속성의 차이점은 무엇입니까?또한 어떤 속성을 언제 사용해야 합니까?

@GetMapping(path = "/usr/{userId}")
public String findDBUserGetMapping(@PathVariable("userId") String userId) {
  return "Test User";
}

@RequestMapping(value = "/usr/{userId}", method = RequestMethod.GET)
public String findDBUserReqMapping(@PathVariable("userId") String userId) {
  return "Test User";
}

코멘트(및 문서)에 기재된 바와 같이value에일리어스입니다.path봄은 종종 선언한다.value일반적으로 사용되는 요소에 대한 별칭으로 사용됩니다.의 경우@RequestMapping(그리고@GetMapping, ...) 이것은path속성:

이것은 의 에일리어스입니다.예를 들어,@RequestMapping("/foo")와 동등하다@RequestMapping(path="/foo").

이 배경의 근거는, 이 모든 것이value주석의 경우 요소가 기본이므로 코드를 보다 간결하게 작성할 수 있습니다.

그 외의 예는 다음과 같습니다.

  • @RequestParam(valuename)
  • @PathVariable(valuename)
  • ...

단, 예에서 설명한 것처럼 에일리어스는 주석 요소에만 국한되지 않습니다.@GetMapping의 에일리어스입니다.@RequestMapping(method = RequestMethod.GET).

코드에서 참조를 찾는 것만으로, 이러한 작업이 빈번하게 행해지고 있는 것을 알 수 있습니다.

@GetMapping의 줄임말이다@RequestMapping(method = RequestMethod.GET).

당신의 경우. @GetMapping(path = "/usr/{userId}")의 줄임말이다@RequestMapping(value = "/usr/{userId}", method = RequestMethod.GET).

둘 다 동등합니다.속기 사용 선호@GetMapping좀 더 장황한 대안에 대해서요당신이 할 수 있는 한 가지 일은@RequestMapping할 수 없는 일@GetMapping는 복수의 요구 방식을 제공하는 것입니다.

@RequestMapping(value = "/path", method = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT)
public void handleRequet() {

}

사용하다@RequestMapping여러 개의 HTTP 동사를 제공해야 할 때 사용합니다.

의 다른 사용법@RequestMapping는 컨트롤러의 최상위 경로를 제공해야 하는 경우입니다.예를 들어,

@RestController
@RequestMapping("/users")
public class UserController {

    @PostMapping
    public void createUser(Request request) {
        // POST /users
        // create a user
    }

    @GetMapping
    public Users getUsers(Request request) {
        // GET /users
        // get users
    }

    @GetMapping("/{id}")
    public Users getUserById(@PathVariable long id) {
        // GET /users/1
        // get user by id
    }
}

@GetMapping은 @RequestMapping의 별칭입니다.

@GetMapping은 @RequestMapping(메서드=RequestMethod)의 바로 가기 역할을 하는 구성된 주석입니다.GET)

value method는 경로 방식의 별칭입니다.

path()의 에일리어스입니다.예를 들어 @RequestMapping("/foo")은 @RequestMapping(path="/foo")과 동일합니다.

그래서 두 방법 모두 그런 면에서 비슷합니다.

언급URL : https://stackoverflow.com/questions/50351590/difference-between-path-and-value-attributes-in-requestmapping-annotation

반응형