当前位置: 首页 > 面试题库 >

如何正确地重用Jackson ObjectMapper?

钱嘉致
2023-03-14
问题内容

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

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

public class Utils {

    public final static ObjectMapper mapper = new ObjectMapper();

}

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

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

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

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

谢谢


问题答案:

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



 类似资料:
  • 我对ObjectMapper的工作方式和在应用程序中的一般使用感到满意。我想了解的是实现ObjectMapper的最佳方法,以确保它被重用,并且不会在应用程序中创建不必要的实例? 我的想法是我可以在一个Utils类中声明ObjectMapper,如下所示: 谢谢

  • 对于类中的方法,文档是这样说的: 取消此对话框,将其从屏幕上移除。可以从任何线程安全地调用此方法。请注意,当对话框被取消时,不应重写此方法来进行清理,而应在中实现此方法。 在我的代码中,我所做的就是调用来删除它。但是我没有做其他任何事情,甚至没有使用。因此,我问的是如何正确地删除以避免任何内存泄漏等。

  • 问题内容: 我有一个复选框,可以切换某些行为,但是如果有人连续点击100次,我不想向服务器端发送100个请求。 到目前为止,这就是我所准备的(找到以下代码片段): 在我的文档准备功能中: 然后事件本身: 这是因为我将1500毫秒作为去抖动周期,所以如果您在1500毫秒内单击n次,它将仅向服务器发送最新状态。 但是,使用它会有副作用,现在我的其他事件的click事件被搞砸了。我在这里做错什么了吗?有

  • 我发现其他人也有同样的问题,他们的问题通过在InputStreamReader构造函数中指定UTF-8来解决: 以UTF-8形式读取InputStream 这对我不起作用,我也不知道为什么。无论我尝试什么,我总是得到转义的unicode值(斜杠-U+十六进制),而不是实际的语言字符。我在这里做错了什么?提前道谢! 请注意:这不是字体问题。我之所以知道这一点,是因为如果我对同一个文件使用Resour

  • 我在XML文件中引用XML模式时遇到了这个问题。 我的XSD位于以下路径中: 但是当我试图在我的XML文件中找到这样的模式时,找不到XSD: 找到XSD的唯一方法是将其放在同一文件夹中: 所以问题是:如果XML文件与XSD文件不在同一个文件夹中,路径必须如何查找才能找到XSD? 顺便说一下,我使用的例子来自MSDN:他们声称它应该像我尝试的那样工作。但事实并非如此。

  • 我认为应该可以将要重命名的目录复制到一个具有所需名称的新目录中,并删除旧目录,以及、和所有内容。但这是最好的办法吗?