Spring_FrameWork

스프링 MVC(Servlet API사용)

tmxhsk99 2018. 11. 27. 19:14

pom.xml 수정 사항

스프링 버전 수정 

lombok 과 테스트코드 실행을위한  spring test 추가 

servlet 버전 3.1.0 이상으로 수정 

maven 컴파일 옵션은 1.8버전으로 변경하고 프로젝트 Maven 메뉴에서 updateProject 를 실행

server 에서 모듈탭 해당 프로젝트를 추가한뒤 

Edit webmodule 에서 path를 ‘/’ 로지정 후

project run -> server 로 hello world가 뜨는지 확인.

Spring-MVC의 경우 servlet-context.xml에 대신하는  별도의 ServletConfig  클래스를 작성합니다

Servlet config 클래스는 기존의 Servlet-config.xml 에 설정된 모든 내용을 담아야하는데  다음과 같은 방식을 이용한다.

@EnableWebMVC 어노테이션과 @WebMvcConfigurer 인터페이스를 구현하는 방식을 사용 (WebMVCconfigurerAdapter 추상클래스를 사용했으나 스프링 5.0버전부터는 Deprecated되었다)

@Configuration과 WebMvcConfigurationSupport 클래스를 상속하는 방식 - 일반 @Configuration 우선 순위가 구분되지 않는 경우에 사용

ServletConfig 클래스

WebMvcConfigurer는 스프링 MVC와 관련된 설정을 메서드로 오버라이드 하는 형태를 이용할때 사용합니다. ServletConfig 클래스 역시 @ComponentScan을 이용해서 다른 패키지에 작성된 스프링의 객체(bean)를 인식할 수 있습니다.

ServeltConfig 클래스를 정상적으로 실행하려면 WebConfig의 설정은 아래와 같이 ServletCofig를 이용하고, 스프링 MVC의 기본경로도 ‘/’로 변경함 

예제 프로젝트의 로딩 구조 

먼저  root-context.xml에 정의 된 객체(bean)들은 스프링영역안에 생성되고 객체의 의존성 처리가 처리됨 

그후에 MVC에서 사용되는 DispatcherServlet 이라는 서블릿과 관련된 설정이 동작.  내부 웹관련 처리의 준비작업을 할때 사용하는 파일이servlet-context.xml