package bean_mapping; |
import static org.junit.Assert.assertEquals; |
import java.util.ArrayList; |
import java.util.List; |
import ma.glasnost.orika.MapperFacade; |
import ma.glasnost.orika.MapperFactory; |
import ma.glasnost.orika.impl.DefaultMapperFactory; |
import org.junit.Before; |
import org.junit.Test; |
public class TestBeanMapping { |
MapperFacade mapper = null ; |
@Before |
public void init() { |
//创建mapper的工厂类 |
MapperFactory factory = new DefaultMapperFactory.Builder().build(); |
//注册一个mapper,这段可以同过继承configurableMapper类,配置成spring bean |
factory.registerClassMap(factory.classMap(SourceObj. class , DescObj. class ) |
//设置正向空值不复制,反向空值不复制 |
.mapNulls( false ).mapNullsInReverse( false ) |
//相同的字段不需要显示声明 |
//.field("prop1", "prop1") |
.field( "intProp2" , "prop2" ) |
//List, Array, Map类型的复制方式 |
.field( "listProp3{}" , "prop3{}" ).mapNulls( true ) |
.byDefault().toClassMap()); |
//获取mapper |
mapper = factory.getMapperFacade(); |
} |
@Test |
public void testMapping() { |
//构建源对象 |
SourceObj source = new SourceObj(); |
source.setProp1( "test" ); |
source.setIntProp2( "test2" ); |
List<String> propList = new ArrayList<String>(); |
propList.add( "TestString" ); |
propList.add( "TestString2" ); |
source.setListProp3(propList); |
//转换成目标对象 |
DescObj desc = mapper.map(source, DescObj. class ); |
assertEquals(source.getProp1(), desc.getProp1()); |
assertEquals(source.getIntProp2(), desc.getProp2()); |
assertEquals(desc.getProp2(), "test2" ); |
assertEquals(desc.getProp3().size(), 2 ); |
} |
} |
中级程序员
by: 路易斯陈凯瑞 发表于:2014-06-20 10:58:59 顶(0) | 踩(0) 回复
需要用到的jar包
orika-core-1.4.0
paranamer.jar
javassist-GA.jar
回复评论