`
gaojingsong
  • 浏览: 1210632 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【XStream基础知识介绍】

阅读更多

1、XStream介绍

XStream是一个简单的基于Java库,Java对象序列化到XML,反之亦然(即:可以轻易的将Java对象和xml文档相互转换)。

 

 

2、XStream特点

  • Ease of use. A high level facade is supplied that simplifies common use cases.
  • No mappings required. Most objects can be serialized without need for specifying mappings.
  • Performance. Speed and low memory footprint are a crucial part of the design, making it suitable for large object graphs or systems with high message throughput.
  • Clean XML. No information is duplicated that can be obtained via reflection. This results in XML that is easier to read for humans and more compact than native Java serialization.
  • Requires no modifications to objects. Serializes internal fields, including private and final. Supports non-public and inner classes. Classes are not required to have default constructor.
  • Full object graph support. Duplicate references encountered in the object-model will be maintained. Supports circular references.
  • Integrates with other XML APIs. By implementing an interface, XStream can serialize directly to/from any tree structure (not just XML).
  • Customizable conversion strategies. Strategies can be registered allowing customization of how particular types are represented as XML.
  • Security framework. Fine-control about the unmarshalled types to prevent security issues with manipulated input.
  • Error messages. When an exception occurs due to malformed XML, detailed diagnostics are provided to help isolate and fix the problem.
  • Alternative output format. The modular design allows other output formats. XStream ships currently with JSON support and morphing.

使用方便 - XStream的API提供了一个高层次外观,以简化常用的用例。

无需创建映射 - XStream的API提供了默认的映射大部分对象序列化。

性能  - XStream快速和低内存占用,适合于大对象图或系统。

干净的XML  - XStream创建一个干净和紧凑XML结果,这很容易阅读。

不需要修改对象 - XStream可序列化的内部字段,如私有和最终字段,支持非公有制和内部类。默认构造函数不是强制性的要求。

完整对象图支持 - XStream允许保持在对象模型中遇到的重复引用,并支持循环引用。

可自定义的转换策略 - 定制策略可以允许特定类型的定制被表示为XML的注册。

安全框架 - XStream提供了一个公平控制有关解组的类型,以防止操纵输入安全问题。

错误消息 - 出现异常是由于格式不正确的XML时,XStream抛出一个统一的例外,提供了详细的诊断,以解决这个问题。

另一种输出格式 - XStream支持其它的输出格式,如JSON。

 

 

 

 

3、XStream常见的用途

Transport

Persistence

Configuration

Unit Tests

传输

持久化

配置

单元测试

 

 

Known Limitations

If using the enhanced mode, XStream can re-instantiate classes that do not have a default constructor. However, if using a different JVM like an old JRockit version, a JDK 1.4 or you have restrictions because of a SecurityManager, a default constructor is required.

The enhanced mode is also necessary to restore final fields for any JDK < 1.5. This implies deserialization of instances of an inner class.

Auto-detection of annotations may cause race conditions. Preprocessing annotations is safe though.

  • 大小: 10.3 KB
0
0
分享到:
评论

相关推荐

    xstream解析依赖包

    本文将深入探讨XStream的使用以及其依赖包xpp3_min-1.1.4c.jar和xstream-1.3.1.jar的相关知识点。 首先,我们来了解核心组件xstream-1.3.1.jar。XStream的核心功能是提供了一种直观的方式来将Java对象转换为XML,并...

    java源码:Java转换xml.rar

    了解这些基础知识后,深入研究XStream 1.3的源码,你可以发现它是如何实现这些特性的,包括反射、类型检查、序列化和反序列化的具体细节。这对于理解其工作原理,以及可能的性能优化和定制需求很有帮助。 总的来说...

    xtream解析xml

    每个类都有其属性(如`firstname`, `lastname`, `phone`等)和相应的getter和setter方法,这是XStream进行对象序列化和反序列化的基础。 - **Person类**:包含了个人的基本信息,如名字、姓氏、电话号码、传真号码...

    dv-stream.github.io:DV xStream。 网站http

    5. **HTML基础知识**: - HTML标签:HTML由一系列的标签组成,如`&lt;head&gt;`、`&lt;body&gt;`、`&lt;h1&gt;`(标题)、`&lt;p&gt;`(段落)、`&lt;a&gt;`(链接)等,这些标签定义了页面的元素和它们的布局。 - HTML属性:例如`src`(源)用于...

    Spring5中文文档

    在表达式语言(SpEL)章节中,介绍了Spring表达式语言的基础知识和功能特性,以及如何在Bean定义中使用SpEL表达式进行求值和语言参考。 测试章节提供了单元测试和集成测试的示例和最佳实践,包括JDBC测试和使用...

    ( XML-PPT.rar )

    首先,"第1章 XML基础知识.ppt"介绍了XML的基本概念,包括XML的起源、设计目标、语法规则,如元素、属性、注释、命名空间等。此外,还可能讲解了XML文档结构,如DTD(Document Type Definition)和XML Schema,它们...

    ANDROID 小例子

    "ANDROID 小例子"这个压缩包提供了一些基础但实用的示例,帮助开发者深入理解Android系统的工作原理和应用开发技巧。以下是其中涉及的一些关键知识点: 1. **JNI(Java Native Interface)**:JNI是Java平台的一...

    安全客第一期.pdf

    文章介绍了如何在Jenkins 2.101版本中利用XStream存在的远程代码执行(RCE)漏洞。这种攻击方式允许未经身份验证的攻击者执行任意代码,从而对服务器造成严重损害。通过分析XStream的工作机制,文章详细解释了如何发现...

    xfire 开发基础篇 一

    《xfire 开发基础篇 一》这篇博客主要探讨了xfire框架的基础知识,xfire是一个基于Java的轻量级Web服务实现,它允许开发者快速、便捷地创建和消费Web服务。在Java开发中,xfire作为一个强大的工具,极大地简化了WS-I...

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

    第一部分(第1~2章)介绍了公众平台的使用、公众账号的认证、编辑模式的使用等基础知识。 第二部分(第3~4章)首先讲解了如何启用开发模式,然后详细讲解了公众平台的消息接口(包括请求校验、请求消息、事件推...

    springMvc helloworld及springMvc多种视图

    总的来说,这个主题涵盖了Spring MVC的基础知识,包括创建一个简单的Hello World应用,以及它与各种视图技术(如JSP、FreeMarker)的集成。同时,还涉及到一系列Java库,它们在开发过程中起着辅助作用。

    Java/Java web参考文档

    首先,让我们深入理解Java的基础知识。Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。它的设计目标是“一次编写,到处运行”,具有跨平台的特性,这得益于Java虚拟机...

    apache-tomcat-7.0.47-memcached-各种序列化策略-session共享

    6. **apache-tomcat-7.0.47-memcached-java-session共享.rar**:最基础的Java序列化,使用Java内置的ObjectOutputStream和ObjectInputStream进行对象的序列化和反序列化。虽然简单,但序列化的对象通常体积较大,不...

    Spring.3.x企业应用开发实战(完整版).part2

    7.9 JVM Class文件字节码转换基础知识 7.9.1 java.lang.instrument包的工作原理 7.9.2 如何向JVM中注册转换器 7.9.3 使用JVM启动参数注册转换器的问题 7.10 使用LTW织入切面 7.10.1 Spring的LoadTimeWeaver 7.10.2 ...

    Spring3.x企业应用开发实战(完整版) part1

    7.9 JVM Class文件字节码转换基础知识 7.9.1 java.lang.instrument包的工作原理 7.9.2 如何向JVM中注册转换器 7.9.3 使用JVM启动参数注册转换器的问题 7.10 使用LTW织入切面 7.10.1 Spring的LoadTimeWeaver 7.10.2 ...

    xml-master_jason_xml_

    **XML基础知识:** XML文件由一系列元素组成,每个元素都由开始标签、元素内容和结束标签构成,如`&lt;element&gt;content&lt;/element&gt;`。元素可以嵌套,形成复杂的结构。XML还支持属性,用于在标签上附加额外信息。此外,...

    JBoss ESB 学习笔记

    ### JBoss ESB 学习笔记知识点概览 #### 一、搭建ESB开发环境 ...通过以上十六个章节的学习,不仅可以掌握JBoss ESB的基础知识,还能深入了解各种高级特性和应用场景,为实际项目开发打下坚实的基础。

    struts-2.5.14-最核心的文件jar

    以下将详细介绍这些文件及其相关的知识点: 1. **struts2-core-2.5.14.jar**:这是Struts2的核心库,包含了框架的主要组件和API。它包括Action类、拦截器、结果类型、配置管理器等,是构建基于Struts2的应用程序的...

    memcached各种序列化策略之session共享

    1. **Memcached基础**:Memcached是一个开源的、分布式的内存对象缓存系统,用于存储临时的数据,如session。它通过网络通信,提供key-value存储服务,支持多种编程语言的客户端。 2. **Session共享**:在分布式...

    分布式框架简介SSM组合+ springmvc+mybatis+shiro+restful+bootstrap

    #### 一、基础知识与入门 本节主要介绍如何基于SSM(Spring、SpringMVC、MyBatis)框架搭建一个简单的Web应用程序,并实现一个HelloWorld示例。 **1. 导入必要的依赖** - **SpringMVC**: MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics