Dispatcher Servlet
스프링 MVC 의 가장 핵심적인 클래스인
Dispatcher Servlet 을 알아보자
이 전 글에서는 ContextLoaderListener 를 사용해서 스프링이 제공하는 IOC 컨테이너를 사용하는 방법을 알아봤음
(여기까지는 MVC 가 아니다 )
이제는 서블릿을 직접 만드는 대신에 핸들러를 이런식으로 쓰고 싶다.
MVC 를 쓰려면 이런 핸들러 쪽으로 dispatch 해줄 수 있는 그리고 이런 어노테이션을 이해하고
또한 http 를 return 하는 디스패처 서블릿 을 써야한다.
이전 방식에서는 servlet 들을 하나하나 등록을 해서 사용을 했다.
그걸 지우고 dispatcher servlet 하나를 등록하자
web.xml 에 디스패처 서블릿을 등록한다.
이때 여기다가 파라미터를 줄 수 있다.
일단 위 이미지같은 계층 구조를 만들어 보자
루트 쪽에서는 컨트롤러를 빼고 서비스만 , 여기가 컨텍스트 로더 리스너 가 만든 애플리케이션 컨텍스트에 등록
컨트롤러는 디스패처 서블릿이 만드는 에플리케이션 컨텍스트에 등록이 되어야 함
상속관계기 때문에 컨트롤러들이 서비스들을 참조 할 수 있다.
이렇게 빈을 좀 가려서 등록을 하려면 우리가 등록했던 컴포넌트 스캔에다가 옵션을 좀 사용해야함
이 옵션 은 컨트롤러는 빈으로 등록 하지 않는다는 말
그 다음 Config 파일을 하나 더 만든 후
이 설정을 Dispatcher Servelt 이 사용해야하는 것
이렇게 파라미터를 넣어서 디스패처 서블릿이 만든 설정파일을 사용하도록 만들어준다.
앱 밑으로 들어오는 모든 요청을 저 servelet 설정으로 처리하겠다 선언함
/app 밑으로 들어오는 모든 요청이 디스패처 서블릿을 타게 된다.
스프링 부트와는 설정이 좀 다르다
지금까지 위에 방식에서는 서블릿 컨테이너가 먼저 뜨고 서블릿 컨테이너 안에 등록되는 웹 어플리케이션에다가 스프링을 연동하는 방법
(톰캣 안에 스프링을 넣은 형태)
- 서블릿 컨텍스트 로더 리스너를 등록한다던가 디스패처 서블릿을 등록 한다던가
반면에 스프링 부트는 스프링 부트 어플리케이션이 먼저 뜨고
그 안에 톰캣이 내장 서버로 뜬다
그 다음 서블릿을 코드로 등록한다.
'Spring > MVC' 카테고리의 다른 글
Dispatcher Servlet 2 (0) | 2020.02.08 |
---|---|
Dispatcher Servlet (0) | 2020.02.08 |
스프링 IOC 컨테이너 연동 (0) | 2020.02.06 |
서블릿 리스너와 필터 (0) | 2020.02.06 |
서블릿 애플리케이션 (0) | 2020.02.05 |