一尘不染

如何正确地重用Jackson ObjectMapper?

java

我对ObjectMapper的工作方式和应用程序的一般使用感到满意。我想了解的是实现ObjectMapper的最佳方法,以确保其被重用并且不会在应用程序内创建不必要的实例?

我的想法是,可以在Utils类中声明ObjectMapper,如下所示:

public class Utils {

    public final static ObjectMapper mapper = new ObjectMapper();

}

然后,我可以在不同的地方使用诸如以下代码来引用:

JsonSimple jsonSimple = Utils.mapper.readValue(jsonString, JsonSimple.class);

我遇到了另一个问题(我应该将杰克逊的ObjectMapper声明为静态字段吗?),这促使我采用了这种方法。我认为可能的主要区别在于,我想跨许多不同的类共享我的ObjectMapper实例,而不仅仅是在一个类中共享。

这种方法听起来合适还是我错过了什么?

谢谢


阅读 293

收藏
2020-12-03

共1个答案

一尘不染

可以在每个应用程序中使用一个实例,只要在使其可见后您不调用任何配置方法即可,即您应在静态块内进行所有初始化。

2020-12-03