Spring Controller
: 계층형 아키텍처의 Presentation Layer에 해당
Client(웹 브라우저, 모바일 앱)의 요청을 받고 Application Layer에 요청에 대한 처리를 위임하며
Client에 최종 응답을 하는 역할
- view: Client가 요청에 대한 응답의 결과로 보게 되는 웹 페이지
- data: Client가 요청에 대한 응답으로 받는 데이터
Cotroller 코드
3개의 기본 Annotation 사용
@Controller와 @RestController
: Controller 역할을 하는 클래스를 지정, 클래스 상단에 명시
@RequestMapping
: 특정 Request를 처리하는 메소드를 지정, 클래스 또는 메소드 상단에 명시
Annotation
: Java 소스코드에 추가적인 정보를 제공하는 방법
3가지 유형
- 자바 컴파일러에게 정보 제공
- SW 툴에 의해 사용되어 코드 생성이나 추가 작업을 진행
- run-time 시 특정 동작을 추가적으로 실행
@Controller
public class HelloController{
@RequestMapping(value = "/")
public String hello(){
return "index"; // index.html(파일이름이 index)
}
}
약속된 Annotation 사용 시 스프링 프레임워크가 스캔
@Controller vs @RestController
대부분의 동작은 유사: 요청을 받아서 처리하고 응답
응답하는 형태가 다름!
- Controller: view를 응답(html 파일 등) >> html 문서가 반환(html 파일이름을 의미)
- RestController: data를 응답(문자열, Json, xml 등) >> 문자열 자체 반환
웹으로 localhost:8080에서 html파일이 응답하는 지 문자열이 반환되는 지 차이 확인
'백엔드' 카테고리의 다른 글
HTTP API (0) | 2023.11.22 |
---|---|
Spring Boot 컨트롤러와 REST API (0) | 2023.11.22 |
계층형 아키텍처 (0) | 2023.11.16 |
스프링 프레임워크 (0) | 2023.11.15 |
자료구조 컬렉션 클래스 (0) | 2023.11.14 |