Bạn có thể sử dụng BeanPostProcessor
để tùy chỉnh từng hạt được xác định bởi <mvc:annotation-driven />
. Các javadocs bây giờ chi tiết tất cả các bean tag đăng ký.
Nếu bạn thực sự muốn thoát khỏi nó, bạn có thể xem mã nguồn của org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser
Và bạn có thể xem đậu nó được xác định. Tôi đã làm điều này 'tập thể dục' (không phải cho tất cả trong số họ, nhưng đối với những người tôi cần), vì vậy đây là họ:
<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">
Bây giờ, ở trên bạn thấy CommonWebBindingInitializer
. Bạn phải tạo lớp này, để sử dụng chuyển đổi và xác thực:
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);
}
}
Và điều này làm việc tốt cho tôi cho đến nay. Vui lòng báo cáo bất kỳ vấn đề nào với nó.
Cảm ơn Bozho, đó chỉ là đầu vào tôi cần. Tôi khá chắc chắn rằng tôi sẽ chạy vào các vấn đề cấu hình thêm, đặc biệt, thực hiện . Tôi sẽ không ngần ngại báo cáo cho họ ;-) –
Ah, có liên kết Fisheye tôi đang tìm kiếm. :] – earldouglas
Nguồn BTW 'AnnotationDrivenBeanDefinitionParser' cũng có thể được xem tại GitHub: https://github.com/cbeams/spring-framework/blob/master/org.springframework.web.servlet/src/main/java/org/springframework /web/servlet/config/AnnotationDrivenBeanDefinitionParser.java –