BT

InfoQ ホームページ ニュース ModelMapper: オブジェクト間マッピングライブラリ

ModelMapper: オブジェクト間マッピングライブラリ

ブックマーク

原文(投稿日:2012/11/19)へのリンク

 

ModelMapperはJava Beans (Pojo) を別の表現に変換するオブジェクト間マッピングフレームワークだ。これは「設定より規約」というアプローチによって、異なるオブジェクトのマッピングを自動化すると同時に、特殊なケースには進んだ機能を提供できる。これは.NETAutoMapperライブラリに似ている(だが直接移植したものではない)。

非常にコンパクトなコードでシンプルな場合には、ModelMapperは設定なしに、Javaオブジェクトを別のものにマップできる。これは以下をサポートしている。

 

  • 名前ベースのオブジェクトプロパティのマッピング
  • public、protected、privateフィールドのコピー
  • 特定フィールドのスキップ
  • マッピングに影響を与えるコンバータ(例えば、文字列を小文字に変換するなど)
  • 異なる型のフィールド間のマッピング(例えば、文字列から数値)
  • 条件付きのマッピング
  • デフォルトでは不十分な場合の緩いマッピング戦略
  • マッピング処理の検証により、すべてのフィールドが説明できる
  • 特殊なケースにおける、マッピング処理の完全カスタムコントロール
  • GuiceSpringとのインテグレーション

 

あるオブジェクトから別の表現に変換するというのは、エンタープライズアプリケーションでよく見かけるパターンだ。例えば、データベースからロードしたドメインオブジェクトは、GUIとしてユーザに表示する必要がある。もともとのデータベース形式のオブジェクトには、そのライフサイクルに必要なプロパティが多数含まれている。しかし、ユーザにとって関心があるのは、各画面に1つ、2つのフィールドだけだろう。したがって、データベースで使われるPojo(JPAエンティティ)は、GUIで使われるPojoとは少し異なる場合が多い。これがModelMapperが解決しようとする問題だ。一般的に、オブジェクト変換は、エンタープライズアプリケーションのレイヤー間で情報を交換するときに発生する。

オブジェクト変換には他にも次のようなシナリオがある。

 

  • 複数のオブジェクトをひとつのオブジェクトに集約する
  • 既存のオブジェクトに追加のメタデータを計算して付与する
  • 外部システムに送信するためにオブジェクトを変換する
  • 未定義のプロパティをデフォルト値で埋める
  • 既存のプロパティをある方法で変換する(オブジェクトを自分自身にマッピングする)

 

ModelMapperはMaven Centralから利用可能だ。詳しくはユーザガイドJavadocを参照。ソースコードはGitHubにある。

 

Kostis Kapelonis: エンタープライズアプリケーションを専門とするソフトウェアエンジニア。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。