假设我有两个资源并且都返回JSON。对于request1,我想使用jackson mixin来准备返回的JSOn。对于request2,我不想使用任何mixins。
问题:如何在request1之后重置mixins?对象映射器是一个spring bean / singleton。
代码:
@ResponseBody
public Something getSomething1(..) {
..
objectMapper.addMixIn(Something.class, MyMixin.class);
return obj;
}
@ResponseBody
public Something getSomething2(..) {
..
return obj;
}
当然我可以在开始时取消getSomething2()和所有其他方法中的mixins,但我宁愿在getSomething1的completition之后完成它。因此,修改objectMapper的方法应该撤消其更改。
编辑: 正如JBNizet所提到的,这不是线程安全的。有没有人知道如何在一种方法中使用jackson mixins更好的方法?
答案 0 :(得分:0)
您可以使用ObjectMapper.copy()
创建一个与原始配置相同的新| meanVal | sum(Val) | time (s) |
|----------|----------|----------|
| 40 | 1e6 | 0.36 |
| 4000 | 1e8 | 7.72 |
| 20000 | 5e8 | 35.09 |
。然后将自定义MixIns添加到新的ObjectMapper
实例中。