jackson.databind objectMapper的使用 , 并发安全 线程安全

是否并发安全

  是的, 官网有说明

见ObjectMapper类的注释:ObjectMapper (jackson-databind 2.6.0 API),

 使用的时候要注意:

1. 如果直接使用ObjectMapper,需要在第一次使用前做好配置,后面并发使用是线程安全的。但是如果要做配置变更,则可能会报错。

2. 可以直接使用ObjectReader或者ObjectWriter,这两个一旦通过ObjectMapper创建完后就是完全不可变更的。
————————————————
版权声明:本文为CSDN博主「置之死地二后生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010837573/article/details/121613794

反序列化是否有强缓存

  是的. 

ObjectMapper实例对象会维护一个序列化器缓存,即_rootDeserializers成员变量,这是一个ConcurrentHashMap

  因此,如果每次都新建一个ObjectMapper实例,那么每次都需要重新创建json序列化器,会导致严重的类加载操作。

Jackson ObjectMapper复用的根本原因_开翻挖掘机的博客-CSDN博客

是否有反序列化整体缓存

  即jsonStr 对应 JsonObject的缓存 无

自己通过guava缓存设计一个整体缓存.

猜你喜欢

转载自blog.csdn.net/fei33423/article/details/131656268