예전에 포스트 했던 내용중 <mvc:annotation-driven />을 Spring 환경설정 파일에 넣었을 경우 내부적으로 어떤 Bean 설정들이 되는지를 다뤘던 내용이 있었다. 그러나 Spring이 3.1 버전으로 바뀌면서 이 부분도 변화를 겪게 되어 이 부분에 대한 정리도 새로 하게 되었다. Spring이 3,0에서 3.1 버전으로 바뀌면서 Spring MVC에 변화가 생겼기에 이 부분에 변화가 생긴 것이다. 변화가 된 내용은 구글링 해보면 나오니 구글링 하기 바란다. 주석을 이용해서 약간의 설명을 추가해두었다. 주석을 읽어보길 바란다
<!-- Spring 3.1 mvc:annotation 정의 시작 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="order" value="0" />
</bean>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
<!-- <mvc:message-converters> 태그의 messageConverter와 통합 -->
<util:list id="messageConverters">
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="writeAcceptCharset" value="false" />
</bean>
<bean class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<!--
기존에 사용하는 org.springframework.http.converter.xml.SourceHttpMessageConverter 와
org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter 와
org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter 와
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter 는
org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter를 사용함으로써
동적으로 추가된다(AllEncompassingFormHttpMessageConverter 클래스 소스를 보면 SourceHttpMessageConverter 클래스는 필수로 들어가고
나머지 3개의 클래스는 라이브러리 유무에 따라 동적으로 MessageConverter를 추가한다)
-->
<bean class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter" />
<!--
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
-->
<!-- rome 라이브러리 존재시 -->
<bean class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
</util:list>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator" ref="validator" />
<property name="conversionService" ref="conversion-service" />
</bean>
</property>
<property name="messageConverters" ref="messageConverters"/>
<!-- <mvc:argument-resolvers> 태그 존재시 -->
<!--
<property name="customArgumentResolvers">
<util:list>
</util:list>
</property>
-->
<!-- <mvc:return-value-handlers> 태그 존재시 -->
<!--
<property name="customReturnValueHandlers">
<util:list>
</util:list>
</property>
-->
</bean>
<bean class="org.springframework.web.servlet.handler.MappedInterceptor">
<constructor-arg index="0">
<null />
</constructor-arg>
<constructor-arg index="1">
<bean class="org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor">
<constructor-arg index="0" ref="conversion-service" />
</bean>
</constructor-arg>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver">
<property name="messageConverters" ref="messageConverters"/>
<property name="order" value="0"/>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver">
<property name="order" value="1"/>
</bean>
<bean class="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver">
<property name="order" value="2"/>
</bean>
<!-- Spring 3.1 mvc:annotation 정의 끝 -->
'프로그래밍 > Spring' 카테고리의 다른 글
Maven에서 Tomcat을 실행시켜 결과를 확인해보자.. (1) | 2015.03.23 |
---|---|
Spring 3.1의 Controller에서 Custom Annotation을 파라미터로 이용했을때의 Map 클래스 받는 법 (0) | 2015.03.23 |
Custom Annotation을 이용한 객체 검증 작업..(3) (0) | 2015.03.23 |
Custom Annotation을 이용한 객체 검증 작업..(2) (0) | 2015.03.23 |
Custom Annotation을 이용한 객체 검증 작업..(1) (0) | 2015.03.23 |