- 浏览: 1585673 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
jsrgzhangzhiyong:
关于null值的转换还是感觉不太友好,就像 mapstruct ...
我也造了个轮子:BeanMapping(属性拷贝) -
he037:
a417930422 写道引用使用EPHEMERAL会引出一个 ...
基于zookeeper的分布式lock实现 -
seancheer:
qianshangding 写道首先节点启动后,尝试读取本地的 ...
zookeeper学习记录三(session,watcher,persit机制) -
雪夜归人:
您好,我想咨询一下,开源的canal都能支持mysql的哪些版 ...
Canal BinlogChange(mysql5.6) -
zhoudengyun:
copy 一份做记录,后续学习,请知悉
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
背景
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
评论
2 楼
agapple
2012-02-02
diyunpeng 写道
javaeye一直关注JVM群里面的人和你的博客,觉得很多东西你做过的,我也经历过,并且研究的比我透彻多了。
今天下午没事,阅读了一遍源代码,可是累死我了。
希望能够持续总结,让更多的人用。
轮子造了,怎么也得让许多人去开啊
今天下午没事,阅读了一遍源代码,可是累死我了。
希望能够持续总结,让更多的人用。
轮子造了,怎么也得让许多人去开啊
多谢支持啊。轮子已经在公司上用开了。
技术学习贵在坚持,做产品也是如此,有时间可以多多交流哈
1 楼
diyunpeng
2012-02-01
javaeye一直关注JVM群里面的人和你的博客,觉得很多东西你做过的,我也经历过,并且研究的比我透彻多了。
今天下午没事,阅读了一遍源代码,可是累死我了。
希望能够持续总结,让更多的人用。
轮子造了,怎么也得让许多人去开啊
今天下午没事,阅读了一遍源代码,可是累死我了。
希望能够持续总结,让更多的人用。
轮子造了,怎么也得让许多人去开啊
发表评论
-
yugong QuickStart
2016-03-05 01:52 0几点说明 a. 数据迁移的方案可参见设计文档,oracl ... -
阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具
2016-03-05 18:29 6362背景 08年左右,阿里巴巴开始尝试MySQL的相关 ... -
愚公performance
2016-03-02 17:29 0性能测试 全量测试 场景1 (单主键, ... -
yugong AdminGuide
2016-03-02 16:40 0环境要求 操作系统 数据库 迁移方案 部署 ... -
Tddl_hint
2014-01-27 13:52 0背景 工作原理 Hint格式 direct模 ... -
tddl5分库规则
2014-01-26 14:41 0背景 工作原理 构建语法树 元数据 基于 ... -
tddl5优化器
2014-01-22 15:12 0背景 工作原理 构建语法树 元数据 抽象语 ... -
Canal BinlogChange(mariadb5/10)
2014-01-20 17:25 4465背景 先前开源了一个 ... -
asynload quickstart
2013-10-08 22:49 0几点说明: 1. asyncload是做为一个j ... -
映射规则配置
2013-09-26 11:25 0背景 因为alibaba的特殊业务,比如: 同 ... -
网友文档贡献
2013-09-18 15:50 01. Otter源代码解析系列 链接:http://e ... -
Manager配置介绍
2013-09-16 13:00 0通道配置说明 多种同步方式配置 a. 单向同步 ... -
canal&otter FAQ
2013-09-05 17:30 0常见问题 1. canal和 ... -
阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
2013-08-22 16:48 40243项目背景 阿里巴巴B2B公司,因为业务的特性 ... -
Otter AdminGuide
2013-08-19 11:06 0几点说明 otter系统自带了manager,所以简化了一 ... -
Otter高可用性
2013-08-17 23:41 0基本需求 网络不可靠,异地机房尤为明显. man ... -
Otter数据一致性
2013-08-17 23:39 0技术选型分析 需要处理一致性的业务场景: 多地修改 ( ... -
Otter扩展性
2013-08-17 22:20 0扩展性定义 按照实现不同,可分为两类: 数据处理自定 ... -
Otter双向回环控制
2013-08-17 21:37 0基本需求 支持mysql/oracle的异构数据库的双 ... -
Otter调度模型
2013-08-17 20:13 0背景 在介绍调度模型之前,首先了解一下otter系统要解 ...
相关推荐
v1.0.1版本更新日志 1.增加激励广告 2.增加插屏广告 3.增加视频贴片广告 4.增加原生广告 5.独立tk框架后台,简易操作 6.增加小程序过审核功能,后台自定义审核页面 7.增加自定义多接口轮播调用
该压缩包含有TensorFlow1.0.1版本的Mac操作系统.whl文件
该压缩包含有TensorFlow1.0.1版本的Linux操作系统.whl文件
druid数据库连接池1.0.1版本 已经用maven编译好jar包可以直接使用.你也可以去官方或git下载http://code.alibabatech.com/wiki/display/Druid/Home https://github.com/AlibabaTech/druid 然后自己编译
简易影视小程序v1.0.1版本新增过审功能 v1.0.1版本更新日志 1.增加激励广告 2.增加插屏广告 3.增加视频贴片广告 4.增加原生广告 5.独立tk框架后台,简易操作 6.增加小程序过审核功能,后台自定义审核页面 7.增加...
简易影视小程序v1.0.1版本新增过审功能源码.txt
简易影视小程序v1.0.1版本新增过审功能源码.rar
Win32OpenSSL_Light-1_0_1.exe,安装后有LIBEAY32.dll
hadoop-1.0.1官方版本,也是hadoop较老的一个版本,希望学习分布式系统架构的朋友们可以下载~
修补p4jorm jpa支持:查询参数赋值开始索引位置(position)错误(从1开始)
智能聊天机器人,可以与之聊天;智能聊天机器人,可以与之聊天
含有多个版本的openssl文件,1.0.1u 、 1.0.1g、 1.0.2k、1.1.1f、1.1.1g,有源码也有rpm包,有window版本也有linux版本
DEV-C++运行即可