JAXB:注释@XmlAccessorType是仅用于序列化而与数据绑定无关?

时间:2012-04-04 14:31:57

标签: jaxb

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

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

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

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

1 个答案:

答案 0 :(得分:15)

JAXB的@XmlAccessorType注释仅供JAXB (JSR-222)实现用于确定如何将文件封送到XML或从XML封送文件:

通常,主要决定是在FIELD& PROPERTY / PUBLIC。当你在get / set方法中有逻辑时,FIELD特别有用,你不希望在编组/解组时触发它。要查看此选项影响映射元数据的一种方式,请参阅:

当您有许多未映射的属性并且您希望告诉您的JAXB实现仅映射您已注释的字段/属性时,

NONE是一个有用的选择。这比在模型中添加大量@XmlTransient注释要容易得多。

更多信息