3

私は Ruby 出身で、Spring のテストを始めたばかりで、かなりいいと思います。

ただし、 rablJSONなどのライブラリを使用してレンダリングされた出力をカスタマイズできることに慣れていて、注釈を使用してモデルを返すだけのように、内部モデルを直接公開するのは本当に間違っていると感じています。JSON@ResponseBody

rabl に似たライブラリに関するヒントjava/springはありJSONますか?

4

1 に答える 1

2

Spring は Jackson を使用して JSON (非) シリアル化を行います。Jackson wikiを見てください。JSON が生成または解釈される方法をカスタマイズするいくつかの方法について説明します。

あなたのコメントからわかるように、いくつかのカスタマイズを念頭に置いています。

  • フィールドの名前を変更するには、フィールドに注釈を付けます。@JsonProperty("name")
  • フィールドをレンダリングしないことは、フィールドに注釈を付けることで実現できます@JsonIgnore

ただし、これらはモデルに触れる必要があります。私の知る限り、少なくともモデルクラスを少し変更しない限り、それを達成する方法はありません。Jackson には「ビュー」の概念がありますが、それでもモデルに注釈を付ける必要があります。ちなみに、実際には、Java クラスに JPA アノテーションと Jackson アノテーションの両方が付けられているという問題を経験したことはありません。

最後に、モデルの 2 つのバージョンを作成することを検討できます。1 つはデータベース (または任意のデータ ソース) からのもので、もう 1 つはユーザー インターフェイスとの対話に使用されます。ただし、それにはトランスまたはコンバーターのレイオーバーが必要になります。それがオプションであるかどうかはあなた次第です。

于 2013-07-11T11:06:45.807 に答える