XStream
XStream是codehaus上的一个开源项目,用于将Javabean serialize为xml格式,以及从xml中生成javabean。应该是属于data binding,和castor,xmlbeans比起来,简直是太轻量级了,castor和xmlbeans这种都是先定义schema,然后根据schema来generate java class,然后调用marshall和unmarshall方法来序列化javabean。这是属于重量级的方法,虽然功能强大,使用却不方便。如果你改了schema,势必要重新generate,这样你就不能在generate的java class上加上自己的方法。导致生成的java class纯粹用于serialize。以前的使用中就碰到这种问题。
XStream不需要任何配置文件,所以使用起来非常方便,而且对序列化的Javabean没有任何要求,任何javabean都可以。
commons的betwikt也具有类似的功能,但好像需要配置rule,显得还是稍微麻烦些。
XStream is a simple library to serialize objects to XML and back again.
Java Object:
public class Person {
private Integer id;
private String firstName;
private String lastName;
// constructor、getter、setter
}
demo:
class Demo {
public static void main(String[] args) {
// Initialing XStream
XStream xStream = new XStream();
xStream.alias("Person", Person.class);
// serialize to XML
Person person = new Person();
person.setId(new Integer(6));
person.setFirstName("Water");
person.setLastName("Ye");
String xml = xStream.toXML(person);
// deserialize from XML
Person newPerson = (Person) xStream.fromXML(xml);
}
}
xml:
<Person>
<id>6</id>
<firstName>Water</firstName>
<lastName>Ye</lastName>
</Person>