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.
相关推荐
本文将深入探讨XStream的使用以及其依赖包xpp3_min-1.1.4c.jar和xstream-1.3.1.jar的相关知识点。 首先,我们来了解核心组件xstream-1.3.1.jar。XStream的核心功能是提供了一种直观的方式来将Java对象转换为XML,并...
了解这些基础知识后,深入研究XStream 1.3的源码,你可以发现它是如何实现这些特性的,包括反射、类型检查、序列化和反序列化的具体细节。这对于理解其工作原理,以及可能的性能优化和定制需求很有帮助。 总的来说...
每个类都有其属性(如`firstname`, `lastname`, `phone`等)和相应的getter和setter方法,这是XStream进行对象序列化和反序列化的基础。 - **Person类**:包含了个人的基本信息,如名字、姓氏、电话号码、传真号码...
5. **HTML基础知识**: - HTML标签:HTML由一系列的标签组成,如`<head>`、`<body>`、`<h1>`(标题)、`<p>`(段落)、`<a>`(链接)等,这些标签定义了页面的元素和它们的布局。 - HTML属性:例如`src`(源)用于...
在表达式语言(SpEL)章节中,介绍了Spring表达式语言的基础知识和功能特性,以及如何在Bean定义中使用SpEL表达式进行求值和语言参考。 测试章节提供了单元测试和集成测试的示例和最佳实践,包括JDBC测试和使用...
首先,"第1章 XML基础知识.ppt"介绍了XML的基本概念,包括XML的起源、设计目标、语法规则,如元素、属性、注释、命名空间等。此外,还可能讲解了XML文档结构,如DTD(Document Type Definition)和XML Schema,它们...
"ANDROID 小例子"这个压缩包提供了一些基础但实用的示例,帮助开发者深入理解Android系统的工作原理和应用开发技巧。以下是其中涉及的一些关键知识点: 1. **JNI(Java Native Interface)**:JNI是Java平台的一...
文章介绍了如何在Jenkins 2.101版本中利用XStream存在的远程代码执行(RCE)漏洞。这种攻击方式允许未经身份验证的攻击者执行任意代码,从而对服务器造成严重损害。通过分析XStream的工作机制,文章详细解释了如何发现...
《xfire 开发基础篇 一》这篇博客主要探讨了xfire框架的基础知识,xfire是一个基于Java的轻量级Web服务实现,它允许开发者快速、便捷地创建和消费Web服务。在Java开发中,xfire作为一个强大的工具,极大地简化了WS-I...
第一部分(第1~2章)介绍了公众平台的使用、公众账号的认证、编辑模式的使用等基础知识。 第二部分(第3~4章)首先讲解了如何启用开发模式,然后详细讲解了公众平台的消息接口(包括请求校验、请求消息、事件推...
总的来说,这个主题涵盖了Spring MVC的基础知识,包括创建一个简单的Hello World应用,以及它与各种视图技术(如JSP、FreeMarker)的集成。同时,还涉及到一系列Java库,它们在开发过程中起着辅助作用。
首先,让我们深入理解Java的基础知识。Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。它的设计目标是“一次编写,到处运行”,具有跨平台的特性,这得益于Java虚拟机...
6. **apache-tomcat-7.0.47-memcached-java-session共享.rar**:最基础的Java序列化,使用Java内置的ObjectOutputStream和ObjectInputStream进行对象的序列化和反序列化。虽然简单,但序列化的对象通常体积较大,不...
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 ...
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基础知识:** XML文件由一系列元素组成,每个元素都由开始标签、元素内容和结束标签构成,如`<element>content</element>`。元素可以嵌套,形成复杂的结构。XML还支持属性,用于在标签上附加额外信息。此外,...
### JBoss ESB 学习笔记知识点概览 #### 一、搭建ESB开发环境 ...通过以上十六个章节的学习,不仅可以掌握JBoss ESB的基础知识,还能深入了解各种高级特性和应用场景,为实际项目开发打下坚实的基础。
以下将详细介绍这些文件及其相关的知识点: 1. **struts2-core-2.5.14.jar**:这是Struts2的核心库,包含了框架的主要组件和API。它包括Action类、拦截器、结果类型、配置管理器等,是构建基于Struts2的应用程序的...
1. **Memcached基础**:Memcached是一个开源的、分布式的内存对象缓存系统,用于存储临时的数据,如session。它通过网络通信,提供key-value存储服务,支持多种编程语言的客户端。 2. **Session共享**:在分布式...
#### 一、基础知识与入门 本节主要介绍如何基于SSM(Spring、SpringMVC、MyBatis)框架搭建一个简单的Web应用程序,并实现一个HelloWorld示例。 **1. 导入必要的依赖** - **SpringMVC**: MVC(Model-View-...