Controller Layer 요약
- Spring 레이어드 아키덱쳐 -> 프레젠테이션 영역
프레젠테이션 계층
- 상황에 따라 유저 인터페이스 계층이라고도 한다.
- 클라이언트와의 접점이 된다.
- 클라이언트로부터 데이터와 함께 요청을 받고 처리 결과를 응답으로 전달하는 역할이다.
- 클라이언트의 요청에 따라 모델의 상태를 변경하는 영역
- path에 해당하는 메서드를 작성하는 영역
- path에 대한 라우팅을 담당하고 클라이언트의 요청을 비즈니스 로직을 담당하는 Service레이어에서 호출하여 해당 결과를 클라이언트에게 응답
Conteroller Layer
- 클라이언트와 서버간의 접점
- 클라이언트의 요청을 받고 해당 요청에 대한 응답을 처리함
- 각 요청에 해당하는 URL 메서드를 작성하는 영역
Request Controller 작성
@Controller
- 해당 클래스가 컨트롤러 레이어임을 명시 , 단 응답 데이터가 HTML 형식
@ResponseBody
- 응답의 데이터 타입을 HTML이 아니라 JSON으로 지정하는 형식
@RestController
- REST API개발을 위한 어노테이션 Response의 contentType으로 HTML 반환 X
- @Controller + @ ResponseBody JSON 형식의 데이터를 반환하는 컨트롤러임을 명시
@RequestMapping
- HTML 요청에 클래스와 메서드를 URL으로 매핑하기 위한 어노테이션
속성
- value : 매핑할 URL 패턴
- method : 매핑할 HTTP 메서드
- params : 매핑할 요청의 파라미터
- headers : 매핑할 요청의 헤더
- consumes : 매핑할 요청의 본문 MIME 타입
- produces : 매핑할 요청의 응답 본문 MIME 타입
@RequestMapping(value="/main", method = "RequestMethod.GET")
- HTTP GET 방식의 localhost 4000/main/** 받아올수 있다.
Ex : REST API 호출
@RequestMapping("/basic")
public class BasicController {
@RequestMapping(value="/first", method=RequestMethod.GET)
public String firstMethod(){
return "첫번째 REST API 요청 응답";
}
}
실행 결과 화면