본문 바로가기

Spring/MVC

스프링 MVC 연동

Dispatcher Servlet

 

스프링 MVC 의 가장 핵심적인 클래스인 

Dispatcher Servlet 을 알아보자

 

이 전 글에서는 ContextLoaderListener 를 사용해서 스프링이 제공하는 IOC 컨테이너를 사용하는 방법을 알아봤음

(여기까지는 MVC 가 아니다 )

이제는 서블릿을 직접 만드는 대신에 핸들러를 이런식으로 쓰고 싶다.

 

 

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