반응형
Spring MVC에 Front Controller 장점
API를 처리하기 위해 여러 개의 클래스를 만드는 것을 줄여줄 수 있다.
Controller
화면(view)과 비즈니스 로직(Method)을 연결시켜 주는 다리 역할.
TV리모컨 같은 존재?라고 생각하면 될 것 같다 사람이(Client, 브라우저) 채널을 눌러 리모컨(Controller)이 채널번호 인식(Method) 받아 TV화면(view)으로 보여주는 것이라고 비유할 수 있을 것 같다.
Controller Code
Front Controller 패턴으로 효율적인 API 처리를 할 수 있다.
API마다 파일을 만들 필요 없이 유사한 성격의 API를 하나의 Controller로 관리한다.
메서드 이름도 마음대로 설정 가능하나 중복은 불가하다.
관련 블로그!
https://luanaeun.tistory.com/200
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
public String login() {
// ...
}
@GetMapping("/logout")
public String logout() {
// ...
}
@GetMapping("/signup")
public String signup() {
// ...
}
@PostMapping("/signup")
public String registerUser(SignupRequestDto requestDto) {
// ...
}
}
CRUD에서 자주 사용되는 HTTP Merhod이다.
@GET : 조회, 서버로부터 데이터를 취득
@POST : 등록, 서버에 데이터를 추가, 작성 등
@PUT :수정, 서버의 데이터를 갱신, 작성 등
@DELETE :삭제, 서버의 데이터를 삭제
@RequestMapping은 중복되는 URL를 단축시켜 줄 수 있습니다.
중복되는 URL을 위로 빼주면서 좀 더 편하게 사용할 수 있다.
HTTP Method 관련 블로그
https://velog.io/@yh20 studio/CS-Http-Method-%EB% 9E%80-GET-POST-PUT-DELETE
package com.sparta.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World";
}
@GetMapping("/get")
@ResponseBody
public String get() {
return "GET Method 요청";
}
@PostMapping("/post")
@ResponseBody
public String post() {
return "POST Method 요청";
}
@PutMapping("/put")
@ResponseBody
public String put() {
return "PUT Method 요청";
}
@DeleteMapping("/delete")
@ResponseBody
public String delete() {
return "DELETE Method 요청";
}
}
반응형
'TIL(Today I Learned)' 카테고리의 다른 글
| [TIL] Spring MVC (0) | 2023.11.06 |
|---|---|
| [TIL] @Controller (0) | 2023.11.04 |
| [TIL] Spring MVC (0) | 2023.11.02 |
| [TIL]Lombok과 application.properties (0) | 2023.11.02 |
| [TIL] Gradle, 서버, HTTP (1) | 2023.11.01 |