Spring Roo: Was macht das Tag “mvc:annotation-driven”?

Spring Roo verwendet in der webmvc-config.xml das Tag <mvc:annotation-driven />. Doch was macht dieses Tag genau? Wie in diesem Blogbeitrag erwähnt, findet sich die Antwort in der Klasse AnnotationDrivenBeanDefinitionParser. Beschrieben ist auch, wie man das Tag durch Bean-Definitionen ersetzen kann, um zum Beispiel eigene Klassen zu verwenden.

Leider hat der Autor die Beans, die für die Conversions zuständig sind, nicht übernommen. Hier ist die korrekte, bzw. erweiterte Definition.

<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
	<property name="order" value="0" />
</bean>

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />

 <bean id="bindingInitializer" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
	<property name="conversionService" ref="conversionService" />
    <property name="validator" ref="validator" />
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer" ref="bindingInitializer" />
    <property name="messageConverters">
        <list>
           <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
           <bean class="org.springframework.http.converter.StringHttpMessageConverter" />
           <bean class="org.springframework.http.converter.FormHttpMessageConverter" />
           <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
        </list>
    </property>
 </bean>

<bean id="exposingInterceptor" class="org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor">
	<constructor-arg><ref bean="conversionService"/></constructor-arg>
</bean>

<bean class="org.springframework.web.servlet.handler.MappedInterceptor">
 	<constructor-arg><null /></constructor-arg>
 	<constructor-arg><ref bean="exposingInterceptor"/></constructor-arg>
</bean>

Über Georg Schmidl

Georg Schmidl ist Softwareentwickler und hat am 30.9.2010 mit Erfolg seine Bachelor-Arbeit zum Thema "Feedsuchmaschinen im Social Web" abgeschlossen.
Dieser Beitrag wurde unter Tech-Blog abgelegt und mit den Tags , , , , versehen. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>