Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Boot Web-在Jackson中将未知属性上的失败设置为false_Spring_Jackson_Spring Boot - Fatal编程技术网

Spring Boot Web-在Jackson中将未知属性上的失败设置为false

Spring 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

我读过SpringBootDoc(),它提到如果您提供自己的JacksonConvertor,它将覆盖默认的。但我猜它不能使用下面的代码

我要做的是将对象映射器的UNKNOWN属性上的DeserializationFeature.FAIL设置为false

@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()”创建自己的对象映射器,则属性将无效。