studying...
  • 노트의목적
  • 웹전반
    • HTTP
      • 1. HTTP
      • 2. HTTP_Client
      • 3. HTTP_Server
      • 4. JAVA_HTTP_Server
      • 5. Spring_Web_MVC
    • REST_API
      • 1. REST_API
      • 2. URI&MIME_type
      • 3. COLLECTION_Pattern
      • 4. COLLECTION_Pattern_adjustment
      • 5. Spring_Web_MVC
    • DTO_JSON_CORS
      • 1. DTO
      • 2. 직렬화
      • 3. Jackson
      • 4. CORS
    • Layered_Architecture
      • 1. Layered_Architecure
      • 2. Data_Access
      • 3. Domain_Model
    • DI&Spring_Test
      • 1. Dependency_Injection
      • 2. Unit_Test
      • 3. Spring_Test
      • 4. TDD
    • Database
      • 1. Database
      • 2. Relational_Model
      • 3. JDBC
    • JPA
      • 1. ORM
      • 2. Hibernate
      • 3. Embeddable
      • 4. Relationship Mapping
      • 5. Spring Data JPA
    • 도메인_주도_설계
      • 1. DDD
      • 2. Strategic Design
      • 3. Entity, Value Object
      • 4. Aggregate
      • 5. Repository
    • Hexagonal_Architecture
      • 1. SOLID
      • 2. Hexagonal_Architecture
      • 3. 도메인 주도 설계 핵심
    • Spring_Security
      • 1. 애플리케이션 보안
      • 2. 인증
      • 3. 로그인 & 로그아웃
      • 4. 회원가입
      • 5. JWT&Authority
    • File_Upload
      • 1. Multipart_FormData
      • 2. Separation_of_Concerns
      • 3. Cloudinary
    • CQRS
      • 1. CQRS
      • 2. Redis
  • 면접대비
  • book
    • RealMySQL8.0
      • 4장
      • 5장
      • 8장
      • 9장
    • Object
      • 1장
      • 2장
      • 3장
      • 4장
      • 5장
      • 6장
      • 7장
      • 8장
      • 9장
    • ModernJava
      • ch1
      • ch2
    • 클라우드네이티브를위한 쿠버네티스 실전 프로젝트
      • 1장
      • 2장
      • 3장
      • 4장
    • 테라폼 쿡북
      • 2장
      • 3장
      • 4장
      • 5장
      • 6장
  • lecture
    • 외워서끝내는네트워크기초
    • 외워서끝내는네트워크심화
    • aws
      • Architecting_on_AWS
      • Architecrting-advanced
      • Developing_on_AWS
      • migration_essentials
      • Resilience
      • Running_Containers_on_EKS
    • Ansible
    • k8s
      • section2
      • section3
    • Terraform
  • experiences
    • workshops
      • EKS
Powered by GitBook
On this page
  • @RequestMapping
  • @GetMapping, @PostMapping, @PatchMapping, @DeleteMapping
  • @PathVariable
  • @RequestBody
  • @ExceptionHandler
  • @ResponseStatus
  1. 웹전반
  2. REST_API

5. Spring_Web_MVC

Previous4. COLLECTION_Pattern_adjustmentNextDTO_JSON_CORS

Last updated 1 year ago


@RequestMapping

web requests를 메서드에 매핑하기 위한 시그니쳐로 클래스와 메서드 레벨 모두에서 사용될 수 있다.

@GetMapping, @PostMapping, @PatchMapping, @DeleteMapping

@RequestMapping(method=requestMethod.GET, POST, PATCH, DELETE)의 줄임으로 특정 핸들러 메서드의 GET 요청을 매핑한다.

@PathVariable

URI 템플릿 변수와 연동되는 어노테이션으로

@GetMapping("/api/employees/{id}")
@ResponseBody
public String getEmployeesById(@PathVariable String id){
  return "ID: " + id;
}

다음과 같이 사용할 수 있다.

@RequestBody

매서드 파라미터가 웹 리퀘스트의 바디에 매핑되어야 함을 알려주는 어노테이션으로 request body는 HttpMessageConverter를 통해 변환된다. @Valid 어노테이션을 통해 변수들이 validate될 수 있다.

@PostMapping("/request")
public ResponseEntity postController(
  @RequestBody LoginForm loginForm) {
 
    exampleService.fakeAuthenticate(loginForm);
    return ResponseEntity.ok(HttpStatus.OK);
}

@ExceptionHandler

특정 핸들러 클래스나 메서드에 대한 예외를 처리하기 위한 어노테이션으로 해당 예외 클래스를 명시해주면 된다.

@ResponseStatus

메서드나 예외 클래스를 상태 code()와 reason()으로 마크한다. 예외 클래스에서 사용할 때나 reason 항목을 세팅할 때 HttpServletResponse.sendError 메서드가 사용된다.

출처

스프링독
Baeldung
@RequestMapping
@GetMapping, @PostMapping, @PatchMapping, @DeleteMapping
@PathVariable
@RequestBody
@ExceptionHandler
@ResponseStatus