`
冰魄永峰
  • 浏览: 20132 次
  • 性别: Icon_minigender_1
  • 来自: 徐州
社区版块
存档分类
最新评论

Jackson第三篇【ObjectMapper与多线程】

 
阅读更多

      前两篇文章咱们一起学习了一下,Jackson的基本使用方法还记得第一篇文章我获得一个ObjectMapper对象整得那么麻烦 。还用用单例模式来获取为什么不直接new?先看一个数据吧。

   我把咱们第二篇文章里面的TestVo转换成JsonCommonUtil.getMapperInstance(false);方式执行5次  平均耗时为210毫秒,把false改成true以后9991.6毫秒

   这里我不是想测试它的性能(后面我会写一篇专门测试几种JSON类库性能的文章届时应该会涉及到json-lib ,jackson ,Gson……等常用类库 ),我的机器也不给力。我主要是想说明的是每次new ObjectMapper() 和 全局使用一个 性能上相差了 大概 47 倍。在这个时间就是金钱的世界47倍是什么概念,一个系统得转换多少次啊!

  那大家可能说了你直接全局唯一是的,何必浪费时间来写一篇文章呢。别急,我来给大家解释一下!毕竟它是全局的那么在多线程情况下,并发情况下 它会是什么情况呢?会不会弄乱我们的数据?数据是万万不能乱的,你有1000W存款银行系统乱了一下 给你少个0  你会哭的很有节奏!

接下来看下jackson官方文当对ObjectMaper的解释:Jackson's org.codehaus.jackson.map.ObjectMapper "just works" for mapping JSON data into plain old Java objects ("POJOs").引自:http://wiki.fasterxml.co/JacksonInFiveMinutes

 

ObjectMapper mapper = new ObjectMapper();//can reuse,share globally

 卖弄一下我可怜的英语: ObjectMapper 只用作把Json映射到PoJo  ,可用在全局重用。

 既然人家说了只是把Json映射到PoJo 可以全局使用,那咱们还有必要研究吗?我感觉有必要!因为我现在不知道他是否是线程安全的,毕竟数据第一。那么接下来咱们就一起测试一下极端情况下他是否是线程安全的。

 我的测试思路是这样的:可以使用多个线程 线程1Mapper已经映射某一个实体的时候让线程一sleep 然后线程二执行。看看线程2转换的结果是否正确,虽然有点不准确但是也能大概看出来是否是线程安全的。因为代码太多目前正在整理,等整理完毕我贴上代码。

 

 

分享到:
评论
1 楼 citi007 2013-12-27  
兄弟,研究出来jackson是线程安全的了么?

尤其是ObjectMapper

相关推荐

    json数据解析ObjectMapper类需要使用的jar包

    json数据解析ObjectMapper类需要使用的jar包 org.codehaus.jackson.map.ObjectMapper jackson-mapper-asl-1.9.13.jar

    Java json工具类,jackson工具类,ObjectMapper工具类

    本篇文章将深入探讨Jackson库中的核心工具类`ObjectMapper`,以及如何使用`JacksonUtils`来简化JSON操作。 `ObjectMapper`是Jackson库的核心组件,它负责将Java对象转换为JSON字符串,反之亦然。`ObjectMapper`提供...

    ObjectMapper的jar包

    **ObjectMapper:Java序列化与反序列化的利器** 在Java世界中,数据转换是一个常见的任务,尤其是当我们在处理JSON格式的数据时。`ObjectMapper`是Jackson库中的一个关键组件,它提供了一种强大的方式来将Java对象...

    ObjectMapper依赖的jar包

    `ObjectMapper`是Java开发中一个非常重要的工具类,主要用于对象与JSON之间的转换。它由Jackson库提供,Jackson是Java领域最流行的JSON处理库之一。`ObjectMapper`使得在Java对象和JSON数据之间进行序列化和反序列化...

    ObjectMapper依赖的jar包 4.25最新版

    下载jar包导入工程即可,如是maven项目,复制下列依赖到pom.xml文件即可 <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind <version>2.9.5 </dependency>

    json对象转java对象

    json对象转java对象,或者list,引入com.fasterxml.jackson.databind.ObjectMapper;

    jackson json 转 map 数值科学计数法的问题解决.docx

    Jackson JSON 转 Map 之科学计数法问题解决方案 Jackson 是一个流行的 Java 库,用于将 JSON 数据转换为 Java 对象或 Map。在使用 Jackson 将 JSON 转换为 Map 的过程中,可能会遇到科学计数法的问题。该问题的出现...

    hello-jackson-objectmapper:使用Jackson ObjectMapper将JSON转换为Java对象的教程

    在Java开发中,处理JSON数据是一项常见的任务,而Jackson库是Java中广泛使用的JSON解析库之一,特别是它的ObjectMapper组件,能方便地实现JSON与Java对象之间的相互转换。本教程将深入探讨如何使用Jackson ...

    举例讲解Java的Jackson库中ObjectMapper类的使用

    在Java开发中,Jackson库是...总之,`ObjectMapper`是Jackson库的核心,通过它我们可以方便地处理JSON数据与Java对象之间的转换,同时还可以进行各种定制以适应不同项目的需求。在实际开发中,它是一个非常实用的工具。

    jackson-annotations jackson-core jackson-databind

    总的来说,这三个模块共同构成了Jackson的核心功能,使得Java开发者能够轻松地处理JSON数据,特别是在与Web服务交互时。理解并熟练使用这些组件,对于提升Spring MVC应用的性能和用户体验至关重要。

    .org.codehaus.jackson.mapper-1.0.0.jar

    小贝程序员生活\jar\lib\com.springsource.org.codehaus.jackson.mapper-1.0.0.jar 小贝程序员生活\jar\lib\com.springsource.org.codehaus.jackson.mapper-1.0.0.jar 小贝程序员生活\jar\lib\...

    实例解析Json反序列化之ObjectMapper(自定义实现反序列化方法)

    在服务器端开发中,我们常常需要处理来自第三方接口的JSON数据,将其转换成Java对象,以便进一步处理和封装后返回给客户端。ObjectMapper类的readValue方法是完成这一转换的关键工具。 首先,让我们深入理解...

    Jackson实现Object对象与Json字符串的互转

    在本篇文章中,我们将深入探讨如何使用Jackson库实现Object对象与Json字符串的互转。 首先,让我们了解Jackson库的核心组件。Jackson库主要有三个核心模块: 1. `fasterxml.jackson.databind`:这是数据绑定模块,...

    jackson-jar

    通过org.codehaus.jackson.map.ObjectMapper构建树,树由JsonNode节点组成。 3) Data Binding 基于属性访问或注解的方式将json和POJO对象互相转换, 受JAXB基于注解的处理方式启发。通过org.codehaus.jackson....

    ios-ObjectMapper_DataModelFactory.zip

    《Swift中的ObjectMapper与DataModelFactory深度解析》 在iOS应用开发中,数据模型的创建和解析是一项重要的任务。Objective-C时代的JSONModel被广大开发者所熟知,而在Swift时代,ObjectMapper逐渐成为处理JSON...

    jackson.jar

    3. 数据绑定:Jackson的Data Binding特性允许Java对象和JSON之间的映射关系自动建立,极大地简化了对象与JSON数据的转换过程。 4. POJO(Plain Old Java Object)支持:Jackson允许开发者使用普通的Java类来表示数据...

    jackson-annotations-2.2.3.jar(Jackson解析需引入的包)

    3. **Jackson-Databind**:这是数据绑定模块,它将Jackson-Annotations和Jackson-Core结合在一起,允许开发者直接将Java对象转换为JSON对象,反之亦然。`jackson-databind-2.2.3.jar`通常会与`jackson-annotations-...

    jackson-annotations.jar jackson-core.jar jackson-databind.jar

    此外,`ObjectMapper`类是Jackson的核心类,它结合了`JsonParser`和`JsonGenerator`的功能,提供了一种简洁的方式来将Java对象与JSON数据进行映射。 3. **jackson-databind.jar**: 这是Jackson的数据绑定模块,提供...

    java中用ObjectMapper类实现Json与bean的转换示例

    主要给大家介绍了关于在java中用ObjectMapper类实现Json与bean转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。

    使用Jackson在Java中处理JSON

    本篇文章将深入探讨如何使用Jackson在Java中进行JSON操作。 首先,Jackson库主要由三个模块组成: 1. **Jackson-core**: 这是Jackson库的基础模块,包含了基本的JSON流处理API,如`JsonParser`和`JsonGenerator`,...

Global site tag (gtag.js) - Google Analytics