我有一个配置,如果启用,则会阻止未知变量通过。
//fadeout
setTimeout(function(){$(".foot").fadeTo(1000, 0);}, 4000);
//change src
setTimeout(function(){$(".foot").attr("src","foot.png")}, 5000);
//fade in
setTimeout(function(){$(".foot").fadeTo(1000, 1)},6000)
setTimeout(function(){$(".foot").fadeTo(1000, 0);}, 10000);
//change src
setTimeout(function(){$(".foot").attr("src","follow.png")}, 11000);
//fade in
setTimeout(function(){$(".foot").fadeTo(1000, 1)},12000)
我想要这样做,因此,如果有人向我的服务发送了不正确的财产,我将阻止他们。但是,我的服务连接到其他服务,并且如果它们发送未知变量,它也会失败。当我的其他服务与当前服务对话时,我希望忽略未知变量。
我尝试使用
@Value("${json.failOnUnknown:false}")
private boolean failOnUnknown;
Jackson2ObjectMapperBuilder build = new Jackson2ObjectMapperBuilder();
if(!failOnUnknown) {
build.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
else {
build.featuresToEnable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
要覆盖FAIL_ON_UNKNOWN_PROPERTIES,但是它不起作用。
关于如何阻止某些类而不是其他类中的未知变量的任何想法?
答案 0 :(得分:0)
您可能会遇到的一种解决方案是创建两个单独的ObjectMappers,一种忽略未知属性,另一种抛出异常。您可以直接在对象映射器作用域上禁用unknow属性失败,如下所示:objectMapper.disable(FAIL_ON_UNKNOWN_PROPERTIES);
。
这个想法是,您仍然可以创建示例中所示的全局作用域对象映射器,几乎可以在所有地方使用它,除了那些需要在上下文中失败的未知属性的服务之外。