Spring MVC란 무엇인가
2024. 5. 21. 03:49ㆍSpring MVC
반응형
들어가며
Spring MVC는 Spring Framework 하위의 웹 어플리케이션 프레임워크이며, MVC(Model-View-Controller) 디자인 패턴을 구현하는 데 사용된다.
- Model 계층은 데이터와 비즈니스 로직을 담당한다.
- View 계층은 클라이언트 웹 브라우저에 보낼 HTML을 생성한다.
- Controller 계층은 Model과 View 사이에서 HTTP 요청과 응답을 제어하는 역할을 한다.
Spring MVC의 구성요소
- DispatcherServlet: Spring MVC 아키텍쳐의 front controller이다. 들어오는 요청을 핸들링하고, 유저에게 반환할 응답을 제어한다.
- Controller: 요청에 대한 적절한 비즈니스 로직을 매핑하고, 적절한 View를 출력한다.
- Model: Bean, POJO, Java 객체가 들어 있는 비즈니스 로직
- View: 클라이언트의 웹 브라우저에 HTML을 전송한다.
- ViewResolver: View를 로딩하는 템플릿 엔진. JSP나 템플릿 엔진(Thymeleaf 등)이 사용된다.
MVC 패턴의 흐름
- 모든 요청은 DispatcherServlet이 통제한다.
- DispatcherServlet은 요청을 매핑된 Controller로 보낸다.
- Controller는 Model과 View를 리턴한다.
- View는 html 또는 jsp도 될 수 있다.
- DispatcherServlet이 view resolver를 통해 특정 요소를 출력한다.
MVC 패턴 구현해보기
의존성 설정 - build.gradle
- spring-boot-starter-web : Spring MVC의 상위 프레임워크
- spring-boot-starter-thymeleaf : DispatcherServlet이 리턴한 view를 출력할 템플릿 엔진
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}
Controller 작성 - HelloController.java
- 메인 페이지 (”/”)를 요청하면 index.html를 반환
@Controller
public class HelloController {
@GetMapping("/")
public String display() {
return "index";
}
}
View 작성 - index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Spring MVC</title>
</head>
<body>
<p>Hello Spring MVC</p>
</body>
</html>
서버 실행 후 결과 확인
- http://localhost:8080 을 호출하면 index.html을 볼 수 있다.
Resources
반응형