请参阅de-ignore Json fields in test cases了解我正在处理的要求。
作为de-ignore Json fields in test cases的解决方案,我使用if else条件动态切换json视图,如下所示。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
@Component
public class JacksonMapperUtil {
@Autowired
private MappingJackson2HttpMessageConverter jsonConverter;
public void modifyView(final Boolean internalView) {
if (internalView) {
this.jsonConverter.getObjectMapper().setConfig (
this.jsonConverter.getObjectMapper().getSerializationConfig().withView(View.Internal.class));
}
else {
this.jsonConverter.getObjectMapper().setConfig (
this.jsonConverter.getObjectMapper().getSerializationConfig().withView(View.Public.class));
}
}
}
但理论上,当同时存在多个请求时,对于一个请求需要使用公共视图并且需要使用其他内部视图,这应该不起作用,因为我们正在更新同一对象中的视图。所以,我正在寻找一种解决方案,我可以为每个请求动态切换视图。请指出我正确的方向。