- 浏览: 1596008 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 6515背景 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 4594背景 先前开源了一个 ... -
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 40439项目背景 阿里巴巴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系统要解 ...
相关推荐
智能聊天机器人1.0.1版本是一款先进的交互式软件,旨在提供人类与计算机之间的自然语言对话体验。这个机器人利用了人工智能技术,特别是自然语言处理(NLP)和机器学习(ML),来理解和生成人类可理解的对话。在这个...
总的来说,P4JORM 1.0.1版本的发布是一个积极的步骤,它提升了框架的稳定性和用户体验。对于依赖P4JORM的项目,升级到这个版本不仅可以解决当前存在的问题,还能确保代码遵循最佳实践,为未来的开发和维护打下坚实的...
v1.0.1版本更新日志 1.增加激励广告 2.增加插屏广告 3.增加视频贴片广告 4.增加原生广告 5.独立tk框架后台,简易操作 6.增加小程序过审核功能,后台自定义审核页面 7.增加自定义多接口轮播调用
Win32OpenSSL_Light-1_0_1.exe,安装后有LIBEAY32.dll
本资源提供的是一款适用于Linux操作系统的TensorFlow1.0.1版本,该版本发布于2018年,尽管已经不是最新的版本,但对于某些特定项目或依赖旧环境的需求,仍然具有很高的实用价值。 首先,让我们深入了解一下...
在1.0.1版本中,它提供了一套高效、灵活且易于使用的API,使得开发者能够构建复杂的计算图并在各种平台上运行,包括CPU和GPU。在这个特定的场景中,我们关注的是TensorFlow在Mac操作系统的应用。 在Mac上安装...
这个【hadoop-1.0.1官方版本】是Hadoop发展早期的一个重要里程碑,尽管相对较老,但对于理解Hadoop的基础架构和原理仍然极具价值。 在分布式系统架构中,Hadoop的核心组件包括HDFS(Hadoop Distributed File System...
druid数据库连接池1.0.1版本 已经用maven编译好jar包可以直接使用.你也可以去官方或git下载http://code.alibabatech.com/wiki/display/Druid/Home https://github.com/AlibabaTech/druid 然后自己编译
1.0.1是TensorFlow的一个重要版本,提供了稳定性和性能的优化。在这个特定的离线安装包中,它是为Windows 10 64位系统设计的,并且只支持CPU运算,不包含GPU支持。对于那些没有网络连接或者需要在隔离环境中部署...
2. **OpenSSL 1.0.1g**: 这个版本是为解决著名的“心脏出血”(Heartbleed)漏洞而发布的更新。心脏出血是一个严重的安全问题,允许攻击者获取服务器的内存数据,包括私钥和其他敏感信息。1.0.1g 版本修复了该漏洞。...
简易影视小程序v1.0.1版本新增过审功能 v1.0.1版本更新日志 1.增加激励广告 2.增加插屏广告 3.增加视频贴片广告 4.增加原生广告 5.独立tk框架后台,简易操作 6.增加小程序过审核功能,后台自定义审核页面 7.增加...
简易影视小程序v1.0.1版本新增过审功能源码.txt
在描述中提到的 "openssl-1.0.1m" 版本是OpenSSL库的一个特定发行版,它可能包含了一些安全更新和性能改进,以适应当时的开发需求。 1. **OpenSSL 的主要功能**: - **加密算法**:OpenSSL 支持大量的对称加密算法...