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

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookEmail this to someone

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>

Georg Schmidl ist Softwareentwickler und hat am 30.9.2010 mit Erfolg seine Bachelor-Arbeit zum Thema "Feedsuchmaschinen im Social Web" abgeschlossen.

Veröffentlicht unter Tech-Blog Getagged mit: , , , ,

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>