반응형
Spring Framework에서 Controller 메서드의 매개변수와 함께 사용되는 어노테이션들을 정리해보겠습니다.
이들은 클라이언트의 요청에서 데이터를 추출하거나 전달되기 위해서 주로 사용되며 각 어노테이션은 서로 다른 용도와 사용 방식을 가지고 있습니다.
- `@RequestParam`: 요청 매개변수 값 취득
- `@PathVariable`: 경로 변수 값 취득
- `@RequestBody`: 요청 본문(body)에서 데이터를 추출, JSON 또는 XML 같은 형식의 데이터를 컨트롤러 메서드의 매개변수로 변환합니다.
- `@RequestHeader`: 요청 헤더 값 취득
- `@CookieValue`: 쿠키 값 취득
@RequestParam
- 요청 매개변수를 추출하는데 사용됩니다.
- URL 쿼리 문자열이나 POST 요청의 폼 데이터에서 매개변수 값을 추출할 수 있습니다.
- required 속성을 이용하여 필수 매개변수 여부를 정할 수 있습니다.
- defaultValue 속성을 이용하여 파라미터가 없는 경우 기본값을 설정할 수 있습니다.
@RequestMapping(value="detail", method=RequestMethod.GET)
public String detail(@RequestParam("format") String format){
//둘 이상의 파라미터 적용도 가능
@RequestMapping(value="detail", method=RequestMethod.GET)
public String detail(@RequestParam("format") String format, @RequestParam("name") String name){
//파라미터 이름 지정않고 모든 요청 파라미터를 Map으로 담을 수 있다.
@RequestMapping(value="detail", method=RequestMethod.GET)
public String detail(@RequestParam Map<String, String> params){
//파라미터를 필수가 아니라 선택적으로 받게 하기 위해 required=false
//요청 파라미터가 존재하지 않을 때 사용할 defaultValue
public void view(@RequestParam(value="id", required=false, defaultValue="-1") int id){
//메소드 파라미터의 이름과 요청 파라미터 이름 같은 경우 생략 가능
public String view(@RequestParam int id){
@PathVariable
- 경로 변수를 추출하는데 사용됩니다.
@RequestMapping(path="account/{accountId}", method=RequestMethod.GET)
public String detail(@PathVariable String accountId){
@RequestBody
- 요청 본문(body)에서 데이터를 추출하는데 사용됩니다.
- 주로 JSON, XML과 같은 형식의 데이터를 컨트롤러 메서드의 매개변수로 변환합니다.
@PostMapping("/users")
public User insertUsers(@RequestBody User user) {
// user 객체 사용
}
@CookieValue
- @RequestParam과 사용법과 개념이 같습니다. param에서 cookie로만 바뀐겁니다.
public String check(@CookieValue("auth") String auth) { ... }
public String check(@CookieValue(value="auth", required=false, defaultValue="NONE" String auth){...}
@RequestHeader
- @RequestParam과 사용법과 개념이 같습니다. param에서 header로만 바뀐겁니다.
public void header(@RequestHeader("Host") String host,
@RequestHeader("Keep-Alive") long keepAlive)
반응형
'Spring Framework' 카테고리의 다른 글
Spring SpEL: Spring Expression Language 스프링 표현 언어 (0) | 2023.08.09 |
---|---|
Spring WebClient를 활용하여 HTTP 요청 처리하기 (0) | 2023.07.27 |
Spring web.xml, root-context.xml, servlet-context.xml (0) | 2023.05.23 |
Spring @ControllAdvice와 @ExceptionHandler로 전역 예외처리 하기 (0) | 2022.10.25 |
로그인 처리를 위한 UserDetailsService (0) | 2022.10.14 |