[TIL] 6월 26일]

김동규·2023년 6월 26일
0

이번주 과제가 급하지만 Java의 기초가 부족해 Spring 강의를 듣는게 의미가 없어서 지난주 + 주말동안 Java를 본 후 이제 Spring에 들어가게 되었다.

@Controller

@Controller 어노테이션을 클래스 위에 붙이면 해당 클래스는 Controller 역할을 한다는 것을 나타낸다.

@ResponseBody

해당 annotation으로 Controller를 통해 api를 Get, Delete, Post, Put과 같은 매서드 값을 View 페이지가 아닌 반환값 그대로 클라이언트한테 return 하고 싶은 경우 사용한다.

@RestController

해당 어노테이션은 @Controller + @RespinseBody이다. 해당 어노테이션을 사용하면 @Responsebody 어노테이션을 사용하지 않고 반환값을 받아올 수 있다.

@RequestMapping

해당 어노테이션은 Mapping을 진행하면서 반복적으로 나오는 값을 선언한다. 클래스 위에 선언한다.

예시
@RestController
public class Controller

@GetMapping("/api/get")
@PostMapping("/api/post")


@RestController
@RequestMapping("/api")
public class Controller

@GetMapping("/get")
@PostMapping("/post")

추가적으로 알게 된 내용

1.RequestMapping의 선언 위치: RequestMapping은 Class와 Method 에 붙일 수 있고 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 등은 Method에만 붙일 수 있다

2. Controller는 화면(View)과 비즈니스 로직(Model)를 연결시키는 다리 역할을 한다.
3. Front Controller 패턴의 동작과정

과정

  1. Client(브라우저)에서 HTTP 요청이 들어오면 DispatcherServlet 객체가 요청을 분석

  2. DispatcherServlet 객체는 분석한 데이터를 토대로 Handler mapping을 통해 Controller를 찾아 요청을 전달

  3. ControllerDispathcerServlet
    해당 Controller는 요청에 대한 처리를 완료 후 처리에 대한 결과 즉, 데이터('Model')와 'View' 정보를 전달

  4. DispatcherServletClient
    ViewResolver 통해 View에 Model을 적용하여 View를 Client에게 응답으로 전달

profile
안녕하세요~

0개의 댓글