`
unbounder
  • 浏览: 174718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

几个从javabean到xml的类的使用心得

    博客分类:
  • java
阅读更多
自己原来写过一些,但用过的xstream和castor就摒弃山寨版本了,总体来说这两个都很方便,但各有千秋吧

需要转换的bean
public class TestBean {
	String name;
	int age;
	String phone;
	String address;

	public TestBean(String name, int age, String phone, String address) {
		this.name = name;
		this.age = age;
		this.phone = phone;
		this.address = address;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
}


castor版本
public class Bean2Xml {
	public static void main(String[] args) throws MarshalException,
			ValidationException {
		TestBean tb = new TestBean("aaa", 12, "12345678", "114445");
		long time = System.currentTimeMillis();
		StringWriter sw = new StringWriter();
		Marshaller.marshal(tb, sw);
		System.out.println(System.currentTimeMillis() - time);
		System.out.println(sw.toString());
		System.out.println(sw.toString().length());
	}
}

输出:
引用

2171
<?xml version="1.0" encoding="UTF-8"?>
<test-bean age="12"><address>114445</address><phone>12345678</phone><name>aaa</name></test-bean>
135


xstream版本:
public class Bean2XmlBeta {
    public static void main(String[] args) {
        TestBean tb = new TestBean("aaa", 12, "12345678", "114445");
        long time = System.currentTimeMillis();
        XStream xStream = new XStream();
        xStream.alias("bean", TestBean.class);
        String xml = xStream.toXML(tb);
        System.out.println(System.currentTimeMillis() - time);
        System.out.println(xml);
        System.out.println(xml.length());
    }
}


输出:
引用

145
<bean>
  <name>aaa</name>
  <age>12</age>
  <phone>12345678</phone>
  <address>114445</address>
</bean>
103


稍微解释一下,同一个bean,xstream在转化效率上比castor高了一个数量级。
具体应用中就得看需求了,譬如现在项目需要为flex提供饼图所需要的数据,而flex的饼图组建不支持xstream这样的xml,而需要castor这般的格式,也就只能牺牲效率了。

附件为castoer和xstream的几个jar包,欢迎下载
0
0
分享到:
评论

相关推荐

    JSP实验-购物车(用session实现)

    - **创建JavaBean:** 首先,我们需要创建一个JavaBean类来表示购物车中的商品。这个类通常包含商品的ID、名称、价格等属性,并提供getter和setter方法。 - **添加商品:** 当用户点击“加入购物车”按钮时,JSP...

    J2EE实训教程

    实训中会使用到JDK来进行Java程序的编写和运行。 - **JavaEE服务器(Tomcat):** Tomcat是一个开源的Servlet容器,用于部署Java Web应用程序。实训中将学习如何安装、配置Tomcat服务器,并将编写的Web应用程序部署到...

    JSP网络远程作业处理系统(源代码+论文+开题报告+实习报告).zip

    可能使用到的关系型数据库如MySQL,需要设计合理的数据表结构,并使用SQL语句进行数据的增删改查操作。 5. **后台管理**:教师可以查看学生提交的作业,进行批改并返回评分。这涉及到数据的筛选、排序和显示,以及...

    JSF(Java Server Faces)学习日记

    JSF的核心概念包括以下几个方面: 1. **组件模型**:JSF提供了一系列可重用的UI组件,如按钮、输入字段和表格等,开发者可以通过声明式的方式在页面上使用这些组件。每个组件都有一个对应的后台bean属性,用于存储...

    JAVAWEB程序设计课程设计-学生信息管理系统.pdf

    这个系统主要包括以下几个核心功能: 1. **功能结构**: - **学生信息录入**:允许管理员或授权用户输入新的学生信息,包括姓名、学号、专业等。 - **查询学生信息**:提供搜索功能,可以根据学号、姓名等条件...

    jsp学习总结

    接下来,我们将围绕JSP的学习总结,详细探讨几个关键知识点。 #### 1. JSP的基本概念 - **定义**:JSP是由Sun Microsystems公司推出的一种动态网页技术标准,它是在Servlet之后推出的另一种重要的Java Web开发技术...

    基于jsp技术的博客系统

    【基于jsp技术的博客系统】是一个使用Java Server Pages(JSP)技术构建的Web应用程序,主要功能是提供一个在线发布、阅读和管理博客文章的平台。JSP是一种动态网页开发技术,它允许开发者在HTML或者XML文档中嵌入...

    两个非常不错的JSP笔记

    通过深入学习和实践这两个笔记,你可以掌握JSP的各个方面,包括基本语法、页面生命周期、EL和JSTL的使用、MVC模式的应用以及如何创建自定义标签。同时,了解JSP在实际项目中的运用,能够帮助你更好地理解和运用这一...

    java技能总结

    ### Java技能总结 #### 一、Shiro(安全框架) ...以上内容涵盖了 Java 开发中常用的几个重要技术与框架,对于初学者来说是非常宝贵的学习资料。理解并掌握这些技术,将有助于提升个人的开发能力和项目经验。

    jsp在线培训系统

    在线培训系统的组成部分可能包括以下几个关键模块: 1. **用户管理模块**:注册、登录、个人信息管理等功能,确保用户可以安全地访问系统。 2. **课程管理模块**:管理员可以上传、编辑和组织课程内容,包括视频、...

Global site tag (gtag.js) - Google Analytics