1

マルチフォーマットのRESTful(スキーマレス)サービスを提供するためにJAXB+Jettisonを使用しています。 @XmlTransientアノテーションは、シリアル化したくないプロパティに適しています。しかし、それだけでは十分ではありません。

実行時に特定のフィールドをマーシャリングから除外するにはどうすればよいですか?

どういうわけかマーシャリングコンテキストを事前に初期化し、除外するフィールドを定義できますか?

現在のユーザーの役割に基づいてオブジェクトフィールドを選択的にシリアル化するために必要です。

4

1 に答える 1

2

以前は、リーンからフルファットまで、それぞれが異なるJAXBマッピングを持つ多数のDTOを階層に配置することで、同様のことを行いました。ただし、これは少数の役割に対してのみ実用的です。

MOXyは実行時のバインディングの変更を許可しますが、ユースケースに適しているようです。

ただし、サービスコントラクトの改ざんには注意してください。これは、追跡するのが面倒な奇妙なライブバグにつながる可能性があります。

于 2012-06-06T12:43:06.720 に答える