[Spring] 스프링 MVC(3) - 스프링 MVC 설정
스프링 MVC 설정
스프링 MVC를 설정하려면 최소한 다음의 구성 요소를 빈 객체로 등록해주어야 한다.
- HandlerMapping 구현 객체
- HandlerAdapter 구현 객체
- ViewResolver 구현 객체
이 중에서 HandlerMapping과 HandlerAdapter는 다음과 같이 <mvc:annotation-driven> 태그를 이용하면 설정이 끝난다. 따라서, ViewResolver만 추가로 설정해주면 된다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean class="net.madvirus.spring4.chap07.quickstart.HelloController"/>
</beans>
<mvc:annotation-driven> 태그는 다음의 두 클래스를 빈으로 등록해준다.
- RequestMappingHandlerMapping
- RequestMappingHandlerAdapter
이 두 클래스는 @Controller 어노테이션이 적용된 클래스를 컨트롤러로 사용할 수 있게 해준다. 이 두 객체 외에 <mvc:annotation-driven> 태그는 JSON이나 XML 등 요청 / 응답 처리를 위해 필요한 변환 모듈이나 데이터 바인딩 처리를 위한 ConversionService 등을 빈으로 등록해준다.
위 설정에서 InternalResourceViewResolver는 JSP를 이용해서 뷰를 생성할 때 사용되는데, ViewResolver를 지정할 때 주의할 점은 ViewResolver의 이름이 "viewResolver"여야 한다는 점이다. prefix와 suffix는 컨트롤러의 처리 결과를 보여줄 JSP의 경로를 생성할 때 사용된다.
@Configuration 설정을 사용한다면, @EnableWebMvc 어노테이션을 사용하면 된다. @EnableWebMvc 어노테이션을 사용하면 <mvc:annotation-driven> 태그와 동일하게 스프링 MVC를 설정하는데 필요한 빈을 자동으로 등록해준다. 다음과 같이 @EnableWebMvc 어노테이션을 설정 클래스에 적용하면 된다.
@Configuration
@EnableWebMvc
public class MvcQuickStartConfig {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
// 이하 생략
...
}
Reference
- 웹 개발자를 위한 Spring 4.0 프로그래밍 (최범균 저)