Spring MVC 4.3.29和Java 8(当前平台约束),以及大多数XML配置,除了一些注释注释的Controller类。
简而言之,我想让该ObjectMapper
实例由Spring JSON反序列化自动使用,并且要将其设置FAIL_ON_UNKNOWN_PROPERTIES
回true
。
我看到了几个 相关的 问题,但是所有示例似乎都是Spring Boot和/或Java配置。@Autowired
在我的WebSphere环境中,所有建议的bean(Mapper,Builder等)都没有任何值。
希望我只是在某个地方缺少一些简单的胶水。
编辑:ah,我以为我有这个:
@Configuration
public class CustomWebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
((MappingJackson2HttpMessageConverter) converter).getObjectMapper().
enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
break;
}
}
}
}
使用调试器,我可以看到它被命中并更改了预期的标志。但是,当使用时,该行为无效。我不再有任何XML覆盖,但是我仍然有“ master” <mvc:annotation-driven/>
。我想知道它们是否彼此混淆...
好的,是的,只要结合使用@EnableWebMvc
而不是<mvc:annotation-driven/>
:
@EnableWebMvc
@Configuration
public class CustomWebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
((MappingJackson2HttpMessageConverter) converter).getObjectMapper().
enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
break;
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句