您可以使用BeanPostProcessor
來自定義由<mvc:annotation-driven />
定義的每個bean。 javadoc現在詳述了標籤註冊的所有bean。
如果你真的想擺脫它,你可以看看org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser
源代碼,你可以看到它是定義該豆。我做這個「運動」(不是所有的人,但對於那些我需要的),所以這裏是他們:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="com.yourpackage.web.util.CommonWebBindingInitializer" />
</property>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.ResourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
<bean class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
<!-- bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /-->
</list>
</property>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
現在,你上面看到CommonWebBindingInitializer
。你必須創建這個類,以便使用轉換和驗證:
public class CommonWebBindingInitializer implements WebBindingInitializer {
@Autowired
private Validator validator;
@Autowired
private ConversionService conversionService;
@Override
public void initBinder(WebDataBinder binder, WebRequest request) {
binder.setValidator(validator);
binder.setConversionService(conversionService);
}
}
這對我來說工作到目前爲止。隨意報告任何問題。
感謝Bozho,那只是我需要的輸入。我很確定我會遇到更多的配置問題,特別是執行 。我會毫不猶豫地舉報他們;-) –
2010-09-12 11:03:38
啊,有我正在尋找的Fisheye鏈接。 :] – earldouglas 2010-09-12 18:44:05
BTW'AnnotationDrivenBeanDefinitionParser'源代碼也可以在GitHub上查看:https://github.com/cbeams/spring-framework/blob/master/org.springframework.web.servlet/src/main/java/org/springframework /web/servlet/config/AnnotationDrivenBeanDefinitionParser.java – 2011-10-05 17:58:04