15

JAXB を使用するときに、アノテーション @XmlAccessorType を指定する必要がある理由を知りたいと思いました。

これをグーグルで調べたとき、この @XmlAccessorType がデフォルトのフィールドとプロパティのシリアライズ可能性を設定することを示すウェブサイトからこの説明を見つけました。デフォルトでは、JAXB はパブリック フィールドとプロパティをシリアル化します。@XmlAccessorType を設定することにより、Bean は、アノテーション付きフィールドのみをシリアライズできるように選択できます。

ここで著者は、このアノテーションを使用するとシリアライゼーションを制御できると述べています。

私の質問は、 @XmlAccessorType は、XML から Java および Java から XML への JAXB バインディングおよびアンバインディングとは何の関係もなく、シリアライゼーションのみに関するものです。

4

1 に答える 1

18

JAXB の注釈は、XML との間でファイルをマーシャリングする方法を決定するためにJAXB (JSR-222)@XmlAccessorType実装によってのみ使用されます。

通常、行われる主な決定はFIELD& PROPERTY/の間PUBLICです。 FIELDマーシャリング/アンマーシャリング中にトリガーしたくない get/set メソッドにロジックがある場合に特に便利です。この選択がマッピング メタデータにどのように影響するかを確認するには、以下を参照してください。

NONEマップされていないプロパティが多数あり、注釈を付けたフィールド/プロパティのみをマップするように JAXB 実装に指示したい場合に便利な選択です。@XmlTransientこれは、モデルに多くの注釈を追加するよりもはるかに簡単です。

前へ 詳細情報

于 2012-04-04T15:24:22.683 に答える