웹
웹 컨트롤러
148june
2025. 2. 12. 14:36
Spring MVC에서 웹 컨트롤러를 생성하는 기본적인 과정은 다음과 같습니다.
1. 프로젝트 준비
Spring Boot 프로젝트를 생성하고 실행하는 방법은 이미 설명했으므로, 바로 컨트롤러 생성으로 넘어갑니다.
2. 웹 컨트롤러 생성
Spring MVC에서 컨트롤러는 @Controller 또는 @RestController 어노테이션을 사용하여 정의합니다.
- @Controller → 뷰(.html 파일) 반환 가능
- @RestController → JSON 응답 반환
1) 기본 컨트롤러 (@Controller 사용) src/main/java/com/example/demo/controller/WebController.java 파일 생성 후 다음 코드 추가:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/web")
public class WebController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello, Spring MVC!");
return "hello"; // `src/main/resources/templates/hello.html` 뷰 반환
}
}
2) 템플릿(뷰) 추가 (Thymeleaf 사용)
src/main/resources/templates/hello.html 파일 생성 후 다음 코드 추가:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1 th:text="${message}">Hello, Spring MVC!</h1>
</body>
</html>
Hello, Spring MVC!
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public Map<String, String> hello() {
return Map.of("message", "Hello, Spring MVC API!");
}
}
3. REST API 컨트롤러 (@RestController 사용)
뷰 없이 JSON 데이터를 반환하려면 @RestController를 사용합니다.
src/main/java/com/example/demo/controller/ApiController.java 파일을 만들고 다음 코드 추가:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/hello")
public Map<String, String> hello() {
return Map.of("message", "Hello, Spring MVC API!");
}
}
4. 애플리케이션 실행 후 확인
1) 웹 페이지 확인
브라우저에서 다음 URL 접속:
http://localhost:8080/web/hello
2) REST API 확인
Postman 또는 브라우저에서 다음 URL 접속:
http://localhost:8080/api/hello
응답:
{
"message": "Hello, Spring MVC API!"
}
5. 추가 개발
- 폼 데이터 처리 → @PostMapping 사용
- DB 연동 → Spring Data JPA 활용
- 서비스 계층 분리 → @Service 추가
필요한 부분이 있으면 질문하세요! 🚀