[发明专利]一种软件开发辅助工具包无效
申请号: | 201010504090.X | 申请日: | 2010-10-11 |
公开(公告)号: | CN102214092A | 公开(公告)日: | 2011-10-12 |
发明(设计)人: | 周环 | 申请(专利权)人: | 新太科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510665 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 开发 辅助 工具包 | ||
技术领域
本发明属于软件开发领域,特别涉及一种不引入开源框架支持的敏捷J2EE应用开发场景。
技术背景
J2EE是当前企业应用开发的主流技术之一。为了提高开发人员的工作效率,业界也涌现出各种强大且灵活的辅助性开源框架。通过在J2EE项目中引入这些框架,可以将开发人员从繁锁的重复代码中解放出来,从而重点关注于应用业务逻辑的实现。
现在比较知名且有广泛应用的开源框架有Struts、Spring以及Hibernate,三者可统一简称为SSH。它们分别关注于不同的代码设计层,如Hibernate就是一种典型的ORM框架。它用于实现数据表与对象模型的关系映射,让开发人员无需再编写大量的SQL语句来操作后台数据库,可直接通过编写符合Java对象语义的代码来完成常用的数据处理。Struts则对应于展现层及逻辑控制层,利用它可以使开发人员轻松完成数据对象的自动填充、传递、合法性校验以及界面数据自动绑定等功能。Spring则是一个业务组件的拼装器,用于实现依赖反转(IoC)以及对象生命周期管理。
使用开源框架来支持J2EE应用开发固然可以提高生产力,但有些场景下由于公司本身的技术传统习惯或者具体项目的特别要求,不适合引入框架进行开发。这时,需要一种更轻量的辅助工具包来简化开发人员的编码工作,做到脱离主流框架也能地将代码量降到最低,同时保障代码的高可维护性。
发明内容
本发明的目的是针对在某些J2EE项目开发中不适合引入已有开源框架作支撑的场景下,提供的一种可显著提高开发人员编码效率的轻量级开发辅助工具包。
一、在MVC代码层次结构中经常会需要数据对象传递,此工具包中提供了实现对象自动填值(Copy Value)功能,可以从ResultSet、Request、Map或其它源数据对象中提取属性值并完成对目标对象的相应属性值的自动填充。
如图1所示,此功能具体采用的技术方案如下:
对目标对象的属性集进行“反射”(Reflection)遍历,获取待填充的属性名称集合;
对目标对象的每个属性进行“标注”(Annotation)分析,获取自动填充时所需的属性别名映射表;
对于属性别名存在规律性差异的情况下,用户可以注入一个自定义的别名转义处理类(实现至PropertyAliasMapper),那第二步中生成属性别名映射表时会优先使用此自定义实现类来完成,不再进行“标注”(Annotation)分析;
对源数据对象的属性集进行遍历,并统一转成Map对象。生成Map对象时会根据上述属性别名映射表,完成对Map对象keySet的重新生成,以完成目标对象与源数据对象之间待填充属性的一一对应关系;
最后直接调用BeanUtils.populate(Object a,Map b)方法,将参数a
传入目标对象,参数b则传入从源数据对象生成的Map对象。
此功能可以大量减少常规代码中setter/getter方法的出现次数,让开发人员仅用一行代码来完成对象属性值的自动填充,代码简洁而实用。
二、针对DAO层的代码简化处理,此工具包提供了数据对象的SQL语句自动生成功能,能够直接将单表对象映射成基本的SQL DML语句。
如图2所示,此功能具体采用的技术方案如下:
首先,对数据对象类进行“标注”(Annotation)分析,从而获取到目标数据库表名以及主键列名信息。然后对数据对象的每个属性进行“标注”(Annotation)分析,获取转换成SQL时所需的属性别名映射表;
对于属性别名存在规律性差异的情况下,用户可以注入一个自定义的别名转义处理类(实现至PropertyAliasMapper),那上一步中生成属性别名映射表时会优先使用此自定义实现类来完成,不再进行“标注”(Annotation)分析;
对数据对象的属性集进行“反射”(Reflection)遍历,结合第一步获取的表名及主键列名信息生成目标SQL语句。此过程中会扫描对象属性名与表字段名的映射表,同时会对属性的数据类型进行差异化处理;
该功能可以很大程度上简化单表操作SQL语句的编写工作量,同时支持灵活的对象属性名与表字段名的映射处理机制。
附图说明
图1是本发明的对象数据自动填充功能类图;
图2是本发明的SQL语句自动生成功能类图;
具体实施方式
一,对象自动填值功能代码示例
例如下代码:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新太科技股份有限公司,未经新太科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010504090.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:改善哺乳动物的学习和记忆的方法
- 下一篇:一种黄芪延缓衰老咀嚼片及其制备方法