26/07/07 IL(I Learned) - Step 1

Spring Web MVC 시작 구조 이해

1) WebApplicationInitializer

기존 Java 프로그램은 main() 메서드에서 시작하지만,

Spring Web MVC는 Tomcat이 애플리케이션을 실행하며 WebApplicationInitializer가 시작점 역할을 한다.

public class WebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) {

실행 흐름

Tomcat 시작
    ↓
WebApplicationInitializer 실행
    ↓
Spring Container 생성
    ↓
DispatcherServlet 등록

2) Spring Container 생성

AnnotationConfigWebApplicationContext context =
        new AnnotationConfigWebApplicationContext();

context.register(WebConfig.class);

여기서 Spring Container가 생성되고, WebConfig를 읽어 Bean을 생성한다.


3) DispatcherServlet 등록

DispatcherServlet dispatcherServlet =
        new DispatcherServlet(context);

DispatcherServlet은 모든 HTTP 요청을 가장 먼저 받아 적절한 Controller에게 전달한다.

브라우저
    ↓
DispatcherServlet
    ↓
Controller
    ↓
View

4) URL Mapping

registration.addMapping("/");

"/"로 매핑했기 때문에 모든 요청은 DispatcherServlet을 거친다.

/
/food
/shirt
/login

↓

DispatcherServlet

5) WebConfig

@Configuration
@EnableWebMvc
@ComponentScan("org.example.webmvc")

각 어노테이션의 역할

Annotation역할
@ConfigurationSpring 설정 클래스
@EnableWebMvcSpring MVC 기능 활성화
@ComponentScanController, Service 등을 Bean으로 등록

6) ViewResolver

return "index";

Controller에서는 View 이름만 반환한다.

ViewResolver가

return "index"

↓

/WEB-INF/views/index.jsp

로 변환한다.


7) ResourceHandler

정적 리소스(CSS, JS, Image)의 경로를 등록한다.

registry
    .addResourceHandler("/resources/**")
    .addResourceLocations("/resources/");

🔄 전체 실행 흐름

Tomcat 실행

↓

WebApplicationInitializer

↓

Spring Container 생성

↓

WebConfig 읽기

↓

DispatcherServlet 등록

↓

브라우저 요청

↓

DispatcherServlet

↓

Controller

↓

ViewResolver

↓

JSP

↓

브라우저
profile
예 마 함 가보입시더

0개의 댓글