반응형
스프링 부트를 사용하면서 컨트롤러를 만들 때, 파라미터를 넘겨받는 방법으로 @RequestParam만 알고있었는데 또 다른 방법인 @PathVariable이 있다는 걸 알게되어 두가지 모두 정리해보고자 한다.
@RequestParam
단일 파라미터를 받아올 때 사용하는 어노테이션이다.
@GetMapping("/search_user")
public UserDto searchUser(
@RequestParam("name") String name,
@RequestParam(value = "age", required=true) int age // 위와 같음
) {
return userService.getUser(index);
}
메소드 파라미터 값을 넣는 괄호 안에 위와 같이 사용할 수 있다.
위 코드를 보면 알 수 있듯이 @RequestParam의 required는 true가 기본값이다.
이 경우에는 파라미터를 필수로 받아와 에러가 나지 않는다.
그럼 파라미터를 필수로 받아오지 않는 경우에는?
@RequestParam(value="index", required=false) Integer index
required를 false로 설정하면 된다.
이렇게 @RequestParam어노테이션을 사용하면 요청할 때 맨 뒤에 ?와 함께 파라미터값을 넣어주면 된다.
http://localhost:8080/search_user?name=븨나네&age=20
@PathVariable
URI를 더 깔끔하게 사용하는 방식이다.
@GetMapping("/search_user/{index}")
public UserDto searchUser(
@PathVariable("index") int index
) {
return userService.getUser(index);
}
@GetMapping(다른 어노테이션 모두 사용 가능) 어노테이션 path에 {변수명}을 추가해주고
@RequestParam과 동일하게 사용하면 된다.
그럼 아래와 같이 요청을 받을 수 있다.
http://localhost:8080/user/1
++
실무에서는 두가지 어노테이션을 복합적으로 사용한다고 하니 두가지 모두 알아두는 게 좋을 것 같다!
반응형
'Study > Spring boot' 카테고리의 다른 글
[Spring boot] Snake_case to camelCase (0) | 2022.03.22 |
---|---|
[Spring boot] 의존성 주입(DI) 복습 (0) | 2022.02.23 |
[Spring boot] Lombok(롬복) (0) | 2022.01.26 |
[Spring] Spring mvc life cycle (0) | 2022.01.02 |
[Spring] 스프링과 스프링부트 , 빈(Bean) (0) | 2021.12.24 |