10

Вопрос по jaxb – JAXB: Является ли аннотация @XmlAccessorType только для сериализации и не имеет ничего общего с привязкой данных?

Я хотел знать, зачем нам нужно указывать аннотацию @XmlAccessorType при работе с JAXB.

Когда я гуглил по этому поводу, я узнал это описание на веб-сайте, где @XmlAccessorType sets default field and property serializability. By default, JAXB serializes public fields and properties. By setting @XmlAccessorType, the bean can choose to only allow annotated fields to be serialized.

Здесь автор упоминает, что с этой аннотацией он дает контроль над сериализацией.

Мой вопрос в том, что @XmlAccessorType не имеет ничего общего с JAXB Binding и Unbinding из XML в java и java в XML, и все дело только в сериализации.

  • 14

    JAXB & APOS; s

    @XmlAccessorType аннотация используется толькоJAXB (JSR-222) реализации для определения, как маршалировать файл в / из XML:

    Обычно основное решение должно быть сделано междуFIELD & Амп;PROPERTY/PUBLIC. FIELD Это особенно полезно, когда в ваших методах get / set есть логика, которую вы не хотите запускать при маршалинге / демаршаллинге. Чтобы увидеть, как этот выбор влияет на метаданные отображения, смотрите:

    http://blog.bdoughan.com/2012/02/jaxbs-xmltype-and-proporder.html

    NONE Это полезный выбор, когда у вас много несопоставленных свойств, и вы хотите, чтобы ваша реализация JAXB отображала только аннотированные поля / свойства. Это может быть намного проще, чем добавить много@XmlTransient аннотации в вашу модель.

    Fore More Information

    http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html