BeanMapping发布1.0.1版本

背景

  BeanMapping是什么? 请查看我之前的一篇文章:  我也造了个轮子:BeanMapping(属性拷贝) 

现状

  目前代码经过在一个实际项目中进行试用,该项目为公司的核心业务逻辑(产品页面数据),目前表现良好。 

 

  在原先的1.0.0版本基础上修复了几个bug,目前推荐使用1.0.1。 

下载

url : https://github.com/agapple/mapping4java/tags

mvn仓库:

 <dependency>
	<groupId>com.googlecode.mapping4java</groupId>
	<artifactId>mapping</artifactId>
	<version>1.0.1</version>
</dependency>

Example1:

Step 1 (define mapping config)

<bean-mappings xmlns="http://mapping4java.googlecode.com/schema/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://mapping4java.googlecode.com/schema/mapping http://mapping4java.googlecode.com/svn/trunk/src/main/resources/META-INF/mapping.xsd">  
        <!--  (bean-bean) mapping 测试 -->  
        <bean-mapping batch="true" srcClass="com.agapple.mapping.object.SrcMappingObject" targetClass="com.agapple.mapping.object.TargetMappingObject" reversable="true">  
            <field-mapping srcName="intValue" targetName="intValue" />  
            <field-mapping targetName="integerValue" script="src.intValue + src.integerValue" /> <!-- 测试script -->  
            <field-mapping srcName="start" targetName="start" />  
            <field-mapping srcName="name" targetName="targetName" /> <!--  注意不同名 -->  
            <field-mapping srcName="mapping" targetName="mapping" mapping="true" />  
        </bean-mapping>  

        <bean-mapping batch="true" srcClass="com.agapple.mapping.object.NestedSrcMappingObject" targetClass="com.agapple.mapping.object.NestedTargetMappingObject" reversable="true">  
            <field-mapping srcName="name" targetName="name" defaultValue="ljh" /> <!-- 测试default value -->  
            <field-mapping srcName="bigDecimalValue" targetName="value" targetClass="string" defaultValue="10" /> <!-- 测试不同名+不同类型+default value  -->  
        </bean-mapping>  

    </bean-mappings>

Step 2 (do mapping) 

public BeanMapping srcMapping    = BeanMapping.create(SrcMappingObject.class, TargetMappingObject.class);  
public BeanMapping targetMapping = BeanMapping.create(TargetMappingObject.class , SrcMappingObject.class);  

    @Test  
    public void testBeanToBean_ok() {  
        SrcMappingObject srcRef = new SrcMappingObject();  
        srcRef.setIntegerValue(1);  
        srcRef.setIntValue(1);  
        srcRef.setName("ljh");  
        srcRef.setStart(true);  

        TargetMappingObject targetRef = new TargetMappingObject();// 测试一下mapping到一个Object对象  
        srcMapping.mapping(srcRef, targetRef);  

        SrcMappingObject newSrcRef = new SrcMappingObject();// 反过来再mapping一次  
        targetMapping.mapping(targetRef, newSrcRef);  
    }

Example2: (和BeanUtils/BeanCopier一样的使用,根据同名属性进行自动映射,不需要定义任何的mapping.xml)

public BeanCopy srcCopy    = BeanCopy.create(SrcMappingObject.class, TargetMappingObject.class);  
    public BeanCopy targetCopy = BeanCopy.create(TargetMappingObject.class , SrcMappingObject.class);  

    @Test  
    public void testBeanToBean_ok() {  
        SrcMappingObject srcRef = new SrcMappingObject();  
        srcRef.setIntegerValue(1);  
        srcRef.setIntValue(1);  
        srcRef.setName("ljh");  
        srcRef.setStart(true);  

        TargetMappingObject targetRef = new TargetMappingObject();// 测试一下mapping到一个Object对象  
        srcCopy.copy(srcRef, targetRef);  

        SrcMappingObject newSrcRef = new SrcMappingObject();// 反过来再mapping一次  
        targetCopy.copy(targetRef, newSrcRef);  
    }

Example3: (和BeanUtils一样,处理map<->bean)

 public BeanMap beanMap = BeanMap.create(SrcMappingObject.class);

    @Test
    public void testDescribe_Populate_ok() {
        SrcMappingObject srcRef = new SrcMappingObject();
        srcRef.setIntegerValue(1);
        srcRef.setIntValue(1);
        srcRef.setName("ljh");
        srcRef.setStart(true);

        Map map = beanMap.describe(srcRef);
        
        SrcMappingObject newSrcRef = new SrcMappingObject();// 反过来再mapping一次
        beanMap.populate(newSrcRef, map);
    }

其他

ChangeLog

 

Release 1.0.1
	"this" symbol GetExecutor bugfix
	boolean isSuccessed generated set/get methods for the isSucessed()/setSuccessed(), should filter attribute is the prefix
	Add date and sqlDate convertor
	Add String and Enum convertor
	Add mapping.propertis define ValueProcess plugins

Release 1.0.0
	Initial mapping code


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值