私は数ヶ月前に書かれたいくつかのコードを見ていたし、私は次のことをやっていたいくつかのサービスクラスを偶然見つけ:
- DBを照会して(便宜上のが彼ら考えるエンティティのリストを取得
Person
するエンティティ)。 - 照会リストストリームのリストに上に取得したデータを変換する
PersonDto
転送オブジェクト。
次に、ステップ#2のカスタムスプリングコンバータは、A型からの変換を実行するために使用される(Person
)(Bを入力しますPersonDto
)。
今、私の質問は以下の通りです。まったく同じ動作が類似用いて行うことができるjava.util.
機能の代わりにスプリングコンバータ。だからではなく、法とを使用することの利点は何ですか?
私は、ドキュメントを見ていたとは別に任意の春コンバータの実装は、スレッドセーフであることが記載されているという事実から、私は他の顕著な違いは表示されません。
私は春、私はさまざまな場所でそれらを注入することができる午前以来、多くのコンバータと、それらを再使用しますが、私は同じことが自己実行ラムダ関数を含むサービスクラスで行うことができます仮定を使用する傾向があります。
だから、として、プレーンの機能対春のコンバータを使用することの可能な利点/欠点が何であるかを、上述しました。
ご使用のケースに応じて、任意のがあるかもしれませんではありません。コンバータ部はそう、Java 5のための支持体(6)と、スプリングバック3に実装されませんでしたFunction
。
しかし、重要なのは、コンバータの機能は、春の一部です。あなたが簡単にあなたの関数を呼び出すことができますが、春はそれについては何も理解していません。春はあなたが全体のSpringフレームワークを変換する方法を理解することができますコンバータを書くことができますので、かかわらず、独自のコンバータを理解しないA
とB
、どこA
で春を理解していないことを何かB
それがないものです。これは、最も一般的な使用例は、すでにあなたのために書かれているにもかかわらず、いくつかの特別な場合に必要になることがあります。
Springの変換機能がデータを変換については、主ではないので、それはSpringフレームワーク自体の機能を拡張についてです。手動でデータを自分で変換するためにそれを使用すると、実際のユースケースよりも副作用の詳細です。