JAXB: Ist die Anmerkung @XmlAccessorType nur für die Serialisierung und nichts mit dem Binden von Daten zu tun?

8

Ich wollte wissen, warum wir bei der Arbeit mit JAXB den Annotation @ XmlAccessorType angeben müssen.

Als ich dafür gegoogelt habe, habe ich diese Beschreibung von einer Website gefunden, die das angibt @XmlAccessorType legt die standardmäßige Feld- und Eigenschaften-Serialisierbarkeit fest. Standardmäßig serialisiert JAXB öffentliche Felder und Eigenschaften. Durch die Einstellung von @XmlAccessorType kann die Bean festlegen, dass nur annotierte Felder serialisiert werden dürfen.

Hier erwähnt der Autor, dass er mit dieser Anmerkung die Kontrolle über die Serialisierung ermöglicht.

Meine Frage ist, also hat @XmlAccessorType nichts mit der JAXB-Bindung und der Bindung von XML an Java und Java an XML zu tun, und es geht nur um Serialisierung.

    
Pawan 04.04.2012, 14:31
quelle

1 Antwort

13

JAXBs @XmlAccessorType Annotation wird nur von JAXB (JSR-222)

Normalerweise ist die wichtigste Entscheidung zwischen FIELD & amp; PROPERTY / PUBLIC . FIELD ist besonders nützlich, wenn Sie in Ihren get / set-Methoden eine Logik haben, die beim Marshalling / Unmarshalling nicht ausgelöst werden soll. Um zu sehen, wie diese Auswahl die Mapping-Metadaten beeinflusst, siehe:

NONE ist eine sinnvolle Wahl, wenn Sie viele nicht zugeordnete Eigenschaften haben und Ihrer JAXB-Implementierung mitteilen möchten, dass nur die von Ihnen kommentierten Felder / Eigenschaften zugeordnet werden sollen. Dies kann viel einfacher sein, als viele @XmlTransient Annotationen in Ihr Modell hinzuzufügen.

Weitere Informationen

Blaise Doughan 04.04.2012, 15:24
quelle

Tags und Links