@XmlRootElement 是 JAXB 中标识 XML 根元素的必需注解,须标注在类上并配 public 无参构造器;可选 name 和 namespace 属性自定义根标签名与命名空间;字段映射需配合 @XmlElement、@XmlAttribute 等注解;实际编组依赖 JAXBContext 解析元数据。

@XmlRootElement 是 JAXB(Java Architecture for XML Binding)中用于将 Java 类映射为 XML 根元素的核心注解。它告诉 JAXB 运行时:这个类可以作为 XML 文档的根节点进行序列化(marshal)或反序列化(unmarshal)。
必须标注在类上,且通常需配 public 无参构造器
只有被 @XmlRootElement 标记的类才能直接参与 JAXB 的根级编组操作。JAXB 在反序列化时需要通过反射创建实例,因此该类必须有一个 public 无参数构造方法(即使你没写,编译器默认提供;但若定义了带参构造器又没显式写无参构造器,就会报错)。
- 正确示例:public class User { public User() {} }
- 错误示例:public class User { public User(String name) { ... } }(缺少无参构造器)
可选指定 name 和 namespace 属性
默认情况下,XML 根元素名取自类名(首字母小写),如 User 类生成
-
@XmlRootElement(name = "person") → 生成
-
@XmlRootElement(namespace = "http://example.com/ns") → 生成
- 两者结合:@XmlRootElement(name = "person", namespace = "http://example.com/ns")
与 @XmlElement、@XmlAttribute 配合控制字段映射
@XmlRootElement 只负责“根身份”,字段如何变成 XML 子元素或属性,需额外注解:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~