15

我想知道为什么我们在使用 JAXB 时需要指定注解 @XmlAccessorType 。

当我用谷歌搜索这个时,我从一个网站上找到了这个描述,说明这个 @XmlAccessorType 设置了默认字段和属性可序列化。默认情况下,JAXB 序列化公共字段和属性。通过设置@XmlAccessorType,bean 可以选择只允许序列化带注释的字段。

在这里,作者提到,通过这个注解,它可以控制序列化。

我的问题是,所以 @XmlAccessorType 与从 XML 到 java 和从 java 到 XML 的 JAXB 绑定和解除绑定无关,它只是关于序列化。

4

1 回答 1

18

JAXB 的@XmlAccessorType注解仅由JAXB (JSR-222)实现用于确定如何将文件编组到 XML 或从 XML 编组:

通常要做出的主要决定是在FIELD& PROPERTY/之间PUBLICFIELD当您的 get/set 方法中有不想在编组/解组期间触发的逻辑时,它特别有用。要查看此选择影响映射元数据的一种方式,请参阅:

NONE当您有许多未映射的属性并且您想告诉您的 JAXB 实现仅映射您已注释的字段/属性时,这是一个有用的选择。这比在模型中添加大量@XmlTransient注释要容易得多。

更多信息

于 2012-04-04T15:24:22.683 回答