IntelliJ를 실행합니다.
New Project를 클릭합니다.

왼쪽 메뉴에서 "Spring Initializr”를 클릭하고 아래와 같이 설정합니다.

🚒[중요] 꼭 다음 사항을 확인해주세요.
Next를 클릭합니다.
Dependencies를 아래 사진과 같이 추가해주고 Create를 클릭합니다.

@WebServlet(urlPatterns = "/user/login")
public class UserLoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}@WebServlet(urlPatterns = "/user/logout")
public class UserLogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}@WebServlet(urlPatterns = "/user/signup")
public class UserSingUpServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}만약 Spring MVC에 Front Controller 패턴이 적용되어있지 않았을 경우 위에처럼 4개의 API를 위한 3개의 클래스 생성이 필요
(2) Controller Code
다행히 Spring MVC는 효율적인 API 처리를 위해 Front Controller 패턴
이제는 API 마다 파일을 만들 필요 없다
메서드 이름도 내 마음대로 설정 가능합니다. (단, 클래스 내의 중복메서드명 불가)
@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) {
// ...
}
}
package com.sparta.springmvc.controller;
import lombok.Getter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/api") // 중복되는 path(URL)부분작성하면 아래에서 그다음부터 작성해도된다
public class HelloCotroller {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "아....hello좀그만"; // view 정보를 전달해서 반환하라는 부분
}
@PostMapping("/ana")
@ResponseBody
public String ana(){
return "아놔....post";
}
@PutMapping("/anaput")
@ResponseBody
public String anaput(){
return "아놔....puut....";
}
@DeleteMapping("/anadelete")
@ResponseBody
public String anadelete(){
return "아놔....delete....";
}
}