DozerをDxoに適用する
Java BeanマッピングライブラリであるDozerをS2StrutsアプリのDxoに適用してみました。Commons BeanUtilsと比べて何が優れているかまだ良くわかりませんが、とりあえず実験です。XMLの定義により細かなマッピング制御ができるようです。
事前準備
http://sourceforge.net/project/showfiles.php?group_id=133517 からDozerをダウンロードします。distフォルダにdozer-2.0.1.jarがあるので、プロジェクトのクラスパスに追加します。
また、下記のライブラリを利用しているので必要に応じて、クラスパスに追加します。
- commons-beanutils.jar 1.7
- commons-collections.jar 3.1
- commons-lang.jar 2.1
- commons-logging.jar 1.03
- log4j.jar 1.2.8
alldxo.diconファイルの作成
プロジェクトで利用するdxoをコンポーネントとして登録します。
aop.traceInterceptor
@org.seasar.framework.container.deployer.InstanceDefFactory@SINGLETON "sample.dxo.impl" ".*DxoImpl" dxoInterceptorChain "sample.dxo.impl" ".*DxoImpl"
dozerBeanMapping.xmlファイルの作成
マッピング情報を定義するdozerBeanMapping.xmlファイルを作成します。とりあえず、マッピングエラーを無視する設定にしています。
false
Dxoインタフェースの作成
public interface DataDxo { public void copyDtoToEntity(EntryDto entryDto, DataEntity dataEntity); }