BackEnd/Spring Boot

Spring Request Flow

Raconer 2023. 4. 15. 19:54
728x90

Spring을 사용하면서 Client에서 Request 요청 시 어떤 동작을 하는지에 대해 정리한 내용입니다.


📌 Spring MVC 요청 흐름 정리

1. 주요 구성요소 설명

📥 Request / Response

  • Request: 클라이언트가 서버에 보내는 요청
  • Response: 서버가 클라이언트에게 반환하는 응답

🎯 DispatcherServlet

  • Front Controller 역할을 하며 모든 요청의 진입점입니다.
  • 요청을 받아서 처리할 Handler(Controller)로 전달하고, 결과를 View로 매핑하여 응답합니다.
  • 내부에 HandlerMapping, HandlerAdapter, ViewResolver 등을 포함합니다.

🔗 Url Handler Mapping

  • 클라이언트 요청 URL을 어떤 Controller와 매핑할지 결정합니다.
  • 예: /user/listUserController

🪞 View Resolver

  • Controller가 반환한 논리적 이름(viewName)을 물리적인 View로 변환합니다.
  • 예: "home"/WEB-INF/views/home.jsp
@Configuration
public class TilesConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public TilesConfigurer tilesConfigurer() {
        final TilesConfigurer configurer = new TilesConfigurer();
        configurer.setDefinitions(new String[] {"/WEB-INF/tiles/tiles.xml"});
        configurer.setCheckRefresh(true);
        return configurer;
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        TilesViewResolver viewResolver = new TilesViewResolver();
        registry.viewResolver(viewResolver);
    }
}

2. Spring MVC 전체 요청 흐름

  1. 클라이언트가 URL 요청
  2. DispatcherServlet이 요청을 수신
  3. 내부 HandlerMapping이 요청 URL에 맞는 Controller 결정
  4. HandlerAdapter를 통해 Controller 실행
  5. Controller는 ModelAndView 또는 ViewName 반환
  6. ViewResolver가 ViewName을 실제 View로 변환
  7. 최종적으로 DispatcherServlet이 View 렌더링하여 클라이언트에게 응답

🔗 참고 자료

728x90

'BackEnd > Spring Boot' 카테고리의 다른 글

Spring Boot 개발 중간 정리  (0) 2023.04.15
Spring boot Test Case  (0) 2023.04.15
Token JJWT  (0) 2023.04.15
json-simple 사용  (0) 2023.04.15
HikariCP란?  (0) 2023.04.15