S2DaoMakerとDtoMaker(自作)を統合して、DB設計書と画面項目書(両方Excel)から以下のものを生成するように。
Dxoには以下のInterceptorを適用(今のところはDxoの実装クラスは未考慮)
public class DxoInterceptor extends AbstractInterceptor { private MapperIF mapper; public Object invoke(MethodInvocation methodinvocation) throws Throwable { if (methodinvocation.getMethod().getName().startsWith("mapping")) { if (methodinvocation.getArguments().length == 2) { mapper.map(methodinvocation.getArguments()[0], methodinvocation.getArguments()[1]); } } return null; } public void setMapper(MapperIF mapper) { this.mapper = mapper; } }
Dxoはこんな感じ
public interface CompanyDtoDxo { public void mapping(CompanyDto dto, Company entity); public void mapping(Company entity, CompanyDto dto); }
dxo.dicon
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components23.dtd"> <components namespace="dxo"> <include path="aop.dicon"/> <component name="mapper" class="net.sf.dozer.util.mapping.DozerBeanMapper" instance="singleton" autoBinding="none"> <property name="mappingFiles">{"mapping.xml"}</property> </component> <component name="interceptor" class="org.seasar.framework.aop.interceptors.InterceptorChain"> <initMethod name="add"><arg>traceInterceptor</arg></initMethod> <initMethod name="add"> <arg><component class="DxoInterceptor" /></arg> </initMethod> </component> <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"> <property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@SINGLETON</property> <property name="autoNaming"> <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming" /> </property> <initMethod name="addClassPattern"> <arg>"test.dxo"</arg> <arg>".*Dxo"</arg> </initMethod> </component> <component class="org.seasar.framework.container.autoregister.AspectAutoRegister"> <property name="interceptor">interceptor</property> <initMethod name="addClassPattern"> <arg>"test.dxo"</arg> <arg>".*Dxo"</arg> </initMethod> </component> </components>