Spring Web MVC 간단 정리

Shaun·2022년 10월 24일
1

SpringBoot

목록 보기
10/21

예전에 정적인 페이지만 호출할수 있었다면 시간이 지남에 따라 동적인 페이지도 필요로 하게 된다.

기존 방식

1.WebServer - CGI
= CGI는 요청이 올때마다 프로세스가 생성된다. (쓰레드 보다 훨신무겁고 느리다)
= 요청이 올때마다 같은 구현체를 사용해도 다른 쓰레드면 구현체가 따로따로 생김 -> 그래서 서블릿 사용(싱글톤)

2.WebServer - WebContainer(=ServletContainer) -Servlet구현체(=DispacherServlet)
= 웹 컨테이너는 리퀘스트가 들어오면 쓰레드를 만들어주고 쓰레드와 서블릿 구현체를 연결해줌
= 웹 컨테이너는 서블릿 구현체 메서드를 호출해준다(init,Service,destroy)

-> 각각 URL 마다 서블릿이 생성되며 웹 컨테이너(서블릿 컨테이너) 에게 알려줌 과 동시에 맵핑하기위해 web.xml에 등록해준다.

SpringWebMVC

  1. 요청이 올떄마다 서블릿을 생성했다면 -> FrontController -> DispatcherServlet 방식 사용
  2. Xml. 등록 방식말고 애노테이션 사용 / @RequestMapping -> 주소로 오면 여기로 찾아오게함
    DispatcherServlet에 대한 자세한 내용은 이전에 포스팅함 ->링크텍스트

FLOW

  • ServletContainer에 들어오면 모든 요청은 DispatcherServlet이 받음
  • HandlerMapping 을 통해 적절한 Controller을 찾음
  • HandlerAdapter 을 이용해 찾은 컨트룰러에서 적절한 메서드를 찾음
  • ViewResolver를 이용해 결과 데이터 활용

=> 결론적으로 우리가 코드를 작성하고 (자바) 그것을 스프링이 컨테이너(IOC)에서 관리를 하고 DispatcherServlet이 그 스프링 컨테이너를 주입받아 사용하고 동작한다!!!!

profile
호주쉐프에서 개발자까지..

0개의 댓글