Spring WebMVC 모듈의 주요 Annotation
1. 요청 매핑 관련 어노테이션
@RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
특정 url패턴에 매핑되는 클래스 및 메서드를 지정하는 주석.
Ha
@RequestMapping("/member") // /member로 들어온 요청은 현재 컨트롤러가 처리함을 의미
public class MemberController {
@RequestMapping("/login") // /member/login으로 들어온 요청은 현재 메서드가 처리함을 의미.
public String login(...){
...
}
@RequestMapping("/logout") // /member/logout으로 들어온 요청은 현재 메서드가 처리함을 의미.
public String logout(...){
...
}
//모든 메서드 mappingUrl의 앞에 /member가 붙게되므로 class영역에 선언한 @RequestMapping
//주석은 "공통주소"라고 불린다.
}
3. 요청 파라미터 및 객체 바인딩 어노테이션
1. @RequestParam
클라이언트가 요청시 전달한 파라미터값을 바인딩해주는 어노테이션.
요청 파라미터의 key값과 일치하는 변수 지정시 파라미터값을 가져올 수 있다. 속성을 통해 기본값 설정, 필수값 설정등이 가능하다.
@PostMapping("/login")
public String login(
@RequestParam(value ="userId" , defaultValue = "mmm" , required= false) String userId ){
...
// 속성의 기능이 필요없다면 어노테이션 생략후 String userId만 작성하여도 파라미터값 바인딩이 이루어진다
}
2. @ModelAttribute
파라미터로 전송한 값을 특정 model객체로 자동 바인딩 해주는 어노테이션
명시적으로 추가하든 생략하든 데이터 바인딩은 문제없으나 명시적으로 작성했을때는 추가적인 기능을 이용할 수 있다.
DispatcherServlet -> HandlerAdapter -> ArgumentResolver의 흐름으로 처리된다.
@PostMapping("/insert")
public String insert(
@ModelAttribute Member m
// 매개변수에 VO클래스가 추가된 경우의 데이터 바인딩 방법은
// 1) 기본생성자호출
// 2) VO클래스이 필드와 일치하는 파라미터값을 setter메서드를 통해 객체 내부에 초기화시킨다
// @ModelAttribute를 생략해도 동일한 동작이 수행된다.
) {
...
}
3. @SeesionAttributes
4. @PathVariable
5. @RequestBody
3. 예외처리 관련 어노테이션
1. @ ExceptionHandler
2. @ ControllerAdvice
3. @ InitBinder
4. 응답처리 관련 어노테이션
@ResponseBody
5. 기타
@CrossOrigin
Last updated