[发明专利]对象映射处理方法、映射处理器和对象映射处理系统在审
申请号: | 201210055803.8 | 申请日: | 2012-03-05 |
公开(公告)号: | CN103294462A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 楼江航 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;余刚 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 映射 处理 方法 处理器 系统 | ||
技术领域
本申请涉及数据处理领域,具体而言,涉及一种对象映射处理方法、映射处理器和对象映射处理系统。
背景技术
现在的业务系统,特别是一些中大型业务系统,系统的分层设计往往都会采取模型-视图-控制(Model-View-Control,简称为MVC),领域模型(Domain Model)驱动,SOA等几种模式进行设计,其中,每个分层或者模块之间的设计为了减少耦合性,尽量减少分层之间数据对象的依赖。比如,对于MVC,页面提交的表单数据在web容器中时为Map对象,在View层处理会被转化成对应的Form Bean,View层会提交数据到Control,如果是按照领域模型设计,此时会被转化成对应的领域对象等。随着系统业务的发展和系统重构,对应系统之间数据对象的转化关系也会变得异常复杂,比如名字变化,类型变化,异构数据等。
在现有技术中提供了一种方法,该方法基于BeanUtils工具,包括以下对象映射过程:
步骤S1,接收客户端传递的需要进行对象映射的源对象(src)和目标对象(target);
步骤S2,分别扫描对应的源对象(src)和目标对象(target)对应的属性;
步骤S3,以目标对象(target)属性为基准,通过反射将对应源对象(src)下的同名的属性赋值给目标对象(target)的属性。如果赋值过程中源对象(src)和目标对象(target)属性的两者类型不同,则自动进行转化(局限于特定的类型转化)。
由于BeanUtils是基于jdk自带的Introspector的bean分析工具,Introspector分析工具会针对当前类对象通盘分析对象的属性信息,实时获取对象的属性信息进行映射处理。受限于分析工具,无法个性化自定义的解析类,比如指定属性处理的方法名,指定的属性类型等,同时,无法支持动态属性的映射,比如Map(Key-Value键值类型)。
受限于Introspector分析工具,BeanUtils提供的对象映射的处理方法是基于自动扫描分析对应的目标对象,基于同名属性来进行实现数据对象的映射过程,并且映射规则不可修改,所以在使用上存在以下局限性:(1)不支持不同属性名之间的映射;(2)不支持动态属性之间的映射;(3)不支持属性方法名出现重载;(4)不支持无属性方法的映射处理;以及(5)不支持n∶1或者1∶n的映射关系等。
针对相关技术中对象映射的处理方法无法处理不同属性名的源对象和目标对象之间映射的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种对象映射处理方法、映射处理器和对象映射处理系统,以解决对象映射的处理方法无法处理不同属性名之间映射的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种对象映射处理方法。根据本申请的对象映射处理方法包括:接收客户端提交的源对象和目标对象;查询与源对象类型和目标对象类型相对应的的映射规则,其中,映射规则根据客户端接收到的设置命令来进行设置,映射规则包括源属性信息和目标属性信息;确定与源属性信息相对应的提取操作,与目标属性信息相对应的设置操作;通过确定的提取操作获取源对象的各属性的属性值;以及通过确定的设置操作将属性值设置到目标对象上。
为了实现上述目的,根据本申请的另一方面,提供了一种映射处理器。根据本申请的映射处理器用于执行本申请提出的任意一种对象映射处理方法。
为了实现上述目的,根据本申请的又一方面,提供了一种映射处理器。该映射处理器包括:接收模块,用于接收客户端提交的源对象和目标对象;查询模块,用于查询与源对象类型和目标对象类型相对应的的映射规则,其中,映射规则由客户端设置,包括源属性信息和目标属性信息;第一确定模块,用于确定与源属性信息相对应的提取操作,与目标属性信息相对应的设置操作;获取模块,用于通过确定的提取操作获取源对象的各属性的属性值;以及设置模块,用于通过确定的设置操作将属性值设置到目标对象上。
为了实现上述目的,根据本申请的又一方面,提供了一种对象映射处理系统,该映射处理系统包括:客户端和本申请提供的任一种映射处理器,其中,该客户端包括:设置模块,用于根据接收到的设置命令设置映射规则,其中,映射规则包括源属性信息、目标属性信息和插件规则信息;以及第一调用模块,用于调用映射处理器,并提交第一源对象和第一目标对象至映射处理器,映射处理器用于处理第一源对象和第一目标对象的映射过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210055803.8/2.html,转载请声明来源钻瓜专利网。