Spring Boot Web-在Jackson中将未知属性上的失败设置为false
我读过SpringBootDoc(),它提到如果您提供自己的JacksonConvertor,它将覆盖默认的。但我猜它不能使用下面的代码 我要做的是将对象映射器的UNKNOWN属性上的DeserializationFeature.FAIL设置为falseSpring Boot Web-在Jackson中将未知属性上的失败设置为false,spring,jackson,spring-boot,Spring,Jackson,Spring Boot,我读过SpringBootDoc(),它提到如果您提供自己的JacksonConvertor,它将覆盖默认的。但我猜它不能使用下面的代码 我要做的是将对象映射器的UNKNOWN属性上的DeserializationFeature.FAIL设置为false @EnableAutoConfiguration @ComponentScan("com.hjh") @Configuration public class App { @Bean @Primary public Ma
@EnableAutoConfiguration
@ComponentScan("com.hjh")
@Configuration
public class App {
@Bean
@Primary
public MappingJackson2HttpMessageConverter jacksonConvertor(){
MappingJackson2HttpMessageConverter convertor= new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
convertor.setObjectMapper(mapper);
return convertor;
}
public static void main(String[] args) throws Exception {
ApplicationContext ctx = SpringApplication.run(App.class, args);
}
有人能指出我做错了什么吗?因为它一直试图从请求中绑定未知的道具。如果我删除了未知的道具,一切都会顺利我建议升级到最新的快照。“1.0.0.BUILD-SNAPSHOT”是最新版本(希望今天晚些时候能看到RC1)。从Spring Boot 1.2.0开始。默认情况下,RC2
FAIL\u ON\u UNKNOWN\u属性设置为false
。可以通过将属性添加到应用程序来重新打开它。属性
:
spring.jackson.deserialization.fail-on-unknown-properties=true
这是什么版本的启动(我建议升级到最新的快照)?另外,请发布堆栈跟踪,否则我们不知道出了什么问题。请将版本从0.5.0.M6升级到0.5.0.M7。一切正常。谢谢DaveCan,我也知道最终发布时间表?通常我们希望有1到2个候选发布,每个候选发布间隔一到两周,然后是最终发布。可能更多,也可能更长。这完全取决于报告了多少问题。我尝试对我的Spring Boot应用程序(1.1.9版本)进行了此更改,但没有改变行为。但是,将主Bean添加到我的配置类(如OPs文章所示)确实解决了我的问题。我有一个单元测试,当向rest端点发布一个它无法识别的字段时,预期会出现400错误。将我的应用程序从Spring Boot 1.2.0.M2升级到1.2.0.RC2时,此测试开始失败。将属性spring.jackson.deserialization.fail on unknown properties=true添加到application.properties也绝对没有效果。我发现通过spring配置文件“application.properties”设置“spring.jackson.deserialization.fail on unknown properties”或任何其他jackson属性仅当ObjectMapper被定义为Bean时才会影响它。因此,如果您通过“new ObjectMapper()”创建自己的对象映射器,则属性将无效。