JAXB是什么 如何用它来实现XML与Java对象的绑定-XML/RSS教程

jaxb是java标准api,用于java类与xml双向自动绑定;java 9起移除,需手动引入jakarta.xml.bind依赖;核心注解包括@xmlrootelement、@xmlelement等;使用jaxbcontext、marshaller和unmarshaller完成序列化与反序列化。

JAXB 是 Java Architecture for XML Binding 的缩写,它是一套标准 API,用于在 Java 类与 XML 文档之间自动完成双向转换(即“绑定”)。Java 9 开始默认移除 JAXB(作为 EE 模块被剥离),所以直接用需手动引入依赖;Java 11 及以后完全不自带。

你不需要从头解析 XML 或手写 DocumentBuilder,JAXB 能靠注解把对象“映射”成 XML,也能把 XML 字符串反向还原为对象——前提是类结构合理、注解到位、依赖齐备。

如何添加 JAXB 运行时依赖(Java 9+ 必做)

Java 9+ 中 javax.xml.bind 包已不在默认 classpath,必须显式添加实现:

  • Maven 项目需在 pom.xml 中加入:
    <dependency>
      <groupId>jakarta.xml.bind</groupId>
      <artifactId>jakarta.xml.bind-api</artifactId>
      <version>4.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-runtime</artifactId>
      <version>4.0.4</version>
    </dependency>
  • 注意包名已从 javax.xml.bind 升级为 jakarta.xml.bind(Java EE → Jakarta EE 迁移结果)
  • 若用老代码(含 javax.* 导包),要么加 jakarta.xml.bind:jakarta.xml.bind-api 的 javax.xml.bind 兼容桥接版,要么批量替换导入(推荐后者)

@XmlRootElement 和其他关键注解怎么用

JAXB 靠注解驱动绑定逻辑。最常用的是:

  • @XmlRootElement:标记类可作为 XML 根元素(否则 JAXBContext.newInstance(YourClass.class) 会抛 IllegalArgumentException)
  • @XmlElement:控制字段/属性在 XML 中的标签名、是否必需(required = true)、是否 nillable
  • @XmlAttribute:将字段序列化为 XML 属性而非子元素
  • @XmlAccessorType(XmlAccessType.FIELD):让 JAXB 直接访问字段(避免写 getter/setter),常配在类上

示例类:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » JAXB是什么 如何用它来实现XML与Java对象的绑定-XML/RSS教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4026197+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4026198+
  • 本周更新: 0+
  • 最后更新: 2026-03-16