XStream 是轻量级 Java 库,支持对象与 XML 互转,无需注解或配置文件;Maven 引入依赖后,通过 alias 设置根标签、toXML 序列化、fromXML 反序列化,并需注意无参构造器、字段匹配及安全白名单限制。
XStream 是一个轻量级 Java 库,能将对象直接转成 XML(序列化),也能把 XML 还原为对象(反序列化),不需要手动写映射、不用注解(默认情况下)、也不依赖外部配置文件。
如果是 Maven 项目,在 pom.xml 中加入:
创建一个简单类,比如用户信息:
public class User {使用 XStream 转换:
XStream xstream = new XStream();输出类似:
默认 XStream 会用类全限定名作标签,容易冗长。建议开启简洁模式:
xstream.autodetectAnnotations(true) 或更直接地用 xstream.setMode(XStream.NO_REFERENCES) 避免 ID 引用xstream.omitField(User.class, "email")
排除敏感字段xstream.aliasField("user-name", User.class, "name")
xstream.addImplicitCollection(User.class, "roles")
只要 XML 结构和类匹配,一行就能还原:
User restored = (User) xstream.fromXML(xml);注意:
- 类必须有无参构造器(XStream 反射实例化需要)
- 字段名需与 XML 标签名一致(或通过 aliasField 映射)
- 默认不校验 XML 合法性,如需安全控制,应启用 xstream.allowTypesByWildcard 白名单
基本上就这些。XStream 上手快,适合内部系统、配置导出、调试数据交换等场景,但不推荐用于不可信的外部 XML 输入(有反序列化风险,生产环境务必限制类型)。