更全的杂志信息网

基于Java Java的Web Web应用系统开发模式

更新时间:2009-03-28

当前,Web应用系统广泛运用于各行各业。构建Web应用系统的技术有Java Web、ASP.Net和PHP等。运用较广的系统开发模式是:需求分析→系统设计→代码实现→测试发布。而实际应用中,按这个模式开发Web应用系统会存在如下问题:①系统之间存在大量重复劳动。绝大多数Web应用系统均具有一些必备功能,如登录验证、用户管理、角色管理、操作主控台、日志管理等。这些功能构成了系统的基础架构,变化较少,模式相对固定,所以在开发Web系统时存在重复劳动,效率降低,效益受影响。②系统内部各业务之间存在大量相似操作。设计前端页面时,各个业务对应的代码很相似,有规律可循。在实现系统业务的CURD(创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete),简称“CURD”)操作时,基本流程一致,不同的可能只是操作表的字段类型和名称。开发人员因此会大量复制并修改已有业务代码来产生新的代码,整体开发效率不理想,系统代码的规范性难以保证,系统维护难度增加,系统稳定性下降。

1 Web开发模式设计思路

为了解决前述Web系统开发的问题,笔者提出了一种基于Java[1]的Web应用系统开发模式。该开发模式由两部分组成,第一是基础架构,第二是代码生成[2]平台。预先抽象归纳出Web应用系统[3]的共有部分,使用SpringMVC+EasyUI框架搭建系统基础架构,然后利用代码生成平台生成具体的业务代码,将其加载到基础架构,最后手工编写业务逻辑代码,手动维护代码,编译打包生成可发布的目标Web应用系统。整体设计流程如图1所示。

  

图1 Web开发模式整体设计框架

2 基础架构设计

2.1 基本管理

1)用户管理。包括用户的录入、编辑、删除、密码重置、锁定、激活、导入导出等,可以配置用户角色,支持多角色用户。设置固定超级管理用户账号“admin”,不可删除。

2)角色管理。包括角色的录入、编辑、删除、导入导出等,可以显示角色下所有用户,可以删除角色下的用户,可以配置角色权限。角色的权限管理包括菜单权限(即角色能否操作菜单)、按钮权限(即角色能否操作按钮)。

3)菜单管理。包括添加菜单、编辑菜单、删除菜单,设置菜单的父菜单、菜单次序、菜单地址、菜单名称、菜单对应的页面按钮权限。

仔细研究EasyUI实现CURD、数据导入导出等功能的脚本代码,发现代码具有极大的相似性。分析抽象脚本代码后,将对应的功能封装为函数,形成单独的脚本文件,供原生的EasyUI代码调用。例如,函数add完成添加功能,title是标题,addurl是添加页面地址,width为编辑框宽度,height为编辑框高度。在实际开发时,还可扩展这部分脚本,例如目标系统存在大量的审核业务时,可以将审核对应的脚本抽象为函数。基础架构还定义了主从关联表的操作方式,定义了EasyUI Datagrid组件对应的实体类Datagrid,实现数据传递。

2.2 标签自定义

目标应用系统的前端采用Easy UI开源框架设计,前端数据显示页面代码行较多,有时达上千行,逻辑较为复杂,如果以此来设计代码模板,难度较大。为了简化逻辑,基础架构自定义了一整套标签。前端显示页面由自定义标签构成,当执行页面时,自定义标签由标签处理器处理后转化为原生的EasyUI前端显示代码,简化了前端代码的设计。前端数据显示页面模板也以自定义标签为基础,最后代码生成平台并不直接生成原生的EasyUI代码,而是生成自定义标签[4]前端代码。整个过程如图2所示。

2.3 脚本代码抽象

或许你会说,现在明白了,抗生素是杀细菌的,不能治疗由病毒引起的普通感冒,那用抗病毒的药去治疗普通感冒应该对吧,所以普通感冒咱就输抗病毒的药吧。很多人这样想也就这样做了,因此抗病毒的利巴韦林注射液在中国比任何国家都有市场,广泛滥用于治疗很多与病毒相关的甚至可以自愈的疾病(像普通感冒、轮状病毒感染等)。

2.4 数据访问层设计

3)校验属性。校验属性描述字段在前端脚本验证时的规则。校验规则在基础架构中预先设定,校验规则可以任意扩充。校验规则名称可以直接用以设定为校验属性的值。系统常见的有整数、限定位数的整数、浮点类型、手机号码、邮政编码、电子邮件、字符类型、非空等校验规则。

  

图2 自定义标签前端代码生成和处理

3 代码生成平台设计

代码生成平台依赖配置信息、数据模型和代码模板输入、输出目标系统代码,其本身也是一个Web应用软件,供开发人员使用。

3.1 数据模型

数据模型以目标系统的关系数据库为基础,一个数据表对应一个数据模型,数据模型也以字段属性来描述,但数据模型的字段属性不仅包含来源于数据库中表的字段属性,还包括该字段映射到页面的页面属性,字段验证的校验属性。数据模型的3部分属性详情如下:

  

图3 数据访问层设计

1)数据库属性。包括字段名称、字段类型、字段长度、字段默认值、小数位数、是否主键、是否为空。这些属性值直接从对应的数据库中查询获得。需注意的是,为便于管理,要求目标系统设计的表必须包含以下字段,并且名称固定,如表1所示。

配置信息包括生成Java代码的包前缀,前端操作的信息提示风格,整个网站的风格,生成代码的存放路径等。数据模型本身存放在代码生成平台的数据库中,代码模板直接放置在平台指定目录中,代码生成平台从数据库中获取数据模型信息,以Map和ListMap类型封装数据,替代代码模板中的参数,最后利用freemarker技术生成目标代码。

在普通的SpringMVC[5]架构中,数据访问层通常由两个部分构成:第一部分由基本的数据访问接口和实现该接口的基本数据访问类组成,第二部分由与业务模块对应的具体数据访问接口和实现该接口的数据访问类组成。具体数据访问接口扩展基本数据访问接口,具体数据访问类继承基本数据访问类。而新模式中数据访问层设计如图3所示。在该模式中,最大的改进在于泛型基类和泛型接口的设计。泛型基类抽象了业务操作共同特征,为Service层调用提供了统一的服务接口,其定义不依赖于任何一个实体类,也使得代码生成平台不需要单独为每个功能模块生成数据访问层代码。该类的部分方法列举如下:①publicListfindByProperty(ClassentityClass,String propertyName,Object value);//根据指定实体类属性值获取对象列表。②publicvoid batchSave(Listentities);//批量保存对象列表。③publicListfindListbySql(String query);//根据 sql查找 list。

式中:w为杂质元素的含量,μg/g;I1为杂质元素的11次载气空白信号值的3倍标准偏差,cps;I2为基体元素的信号值,cps;A1为杂质元素的丰度,%;A2为基体元素的丰度,%。

后续操作指代码生成后到目标系统最终完成所进行的一系列操作。包括以下方面:

3.2 代码模板

1)代码合并。代码合并指将代码生成平台生成的各层代码放到基础架构指定的目录下,并配置扫描路径、数据库连接字符串等,完成后确保目标系统能正常编译运行[6],然后,动态生成目标系统的业务菜单,为页面设定菜单按钮权限,通过角色管理为每个角色配置权限。

 

表1 目标系统数据库表须包含的字段

  

字段名称id create_date update_date create_name update_name类型字符串日期日期字符串字符串描述记录编号创建日期更新日期创建者更新者长度36备注全局唯一标识符20 20

 

表2 代码生成平台中的代码模板

  

类别前端数据显示模板前端数据添加模板前端数据修改模板前端增强脚本模板控制层模板Service层模板实体模板包含模板TableList.ftl TableAdd.ftl TableUpdate.ftl JsEnhance.ftl Controller.ftl Service.ftl、ServiceImpl.ftl Entity.ftl作用生成数据显示页面(表名+list.jsp),该页面也是业务模块主操作页面生成数据添加页面(表名+add.jsp)生成数据修改页面(表名+update.jsp)生成业务模块的js文件,提供js增强功能生成控制层代码生成Service层代码生成实体类代码

3.3 配置信息和代码生成

2)页面属性。页面属性描述字段映射到前端页面的特征。包括该字段对应的列是否在前端数据显示页面可见,在增加和修改页面是否可见,在增加和修改页面对应的控件和控件长度,该字段是否支持查询,是简单查询还是组合查询。必须注意的是,数据库属性相同的字段其页面属性未必相同。例如同样是字符串类型的字段,有的对应文本框控件,有的对应下拉框控件,如果这个字段记录上传文件的路径,那么应该对应上传文件控件。

(2)主梁桁架与电动施工平台三角梁通过焊接两个角钢,卡在平台三角梁上,焊接位置留有50mm间隙,既起到限位作用又留有一定调节量,形成铰接。

4 后续操作

摘取我院确诊的98例IPF(特发性肺间质纤维化)病患资料,其中排除身体残缺、精神障碍及依从性差的病患,纳入神志清晰、签署同意书的病患。研究组年龄48~76岁,平均(61.35±5.33)岁,病程1~5年、平均(3.25±1.10)年,女24例、男29例;对照组年龄49~78岁、平均(62.41±5.06)岁,病程1~5年,平均(3.36±1.24)年,女21例、男24例;两组年龄、病程、性别等基线资料比对无明显差异(P>0.05)。

代码模板是一种特定的文档模板,其设计过程如下:首先分析业务模块的各种功能的实现代码,抽取其中随数据模型变化而变化的部分。其余不会随数据模型变化的部分为不可变部分。使用freemarker技术对可变部分进行参数化,形成模板文件(后缀名为ftl)。经做大量的分析抽取工作,在代码生成平台中提取到的模板如表2所示。需要注意的是:业务模块CURD、导出导入、批量删除等操作需要的js已经抽象为公有的js文件,放在基础架构中的指定目录,供前端调用,无须在代码生成平台生成。在业务模块的主操作页面中,除了可以显示数据,还有删除、批量删除、导入、导出等功能按钮。

2)业务逻辑代码编写。代码生成平台生成代码时不会考虑具体的业务逻辑,需要开发人员手动添加业务逻辑代码,例如,添加代理商业务逻辑需要考虑该代理商的手机号是否已被注册,设定代理商编号,为代理商增加对应的登录账号。

3)业务功能扩展。代码生成平台生成的业务功能是常用的CURD、导入导出等,有时无法满足业务上的所有需求,例如,库存管理、商铺分配库存业务需求、销售报表显示需求等,需要开发人员手动添加各层代码,实现业务功能扩展。

本次研究之中主要是应用小组集体阅片的方式进行图像分析,小组中需要由2名或者以上的高年资腹部影响诊断医师组成,在不了解患者病史、最终诊断的前提之下于MMWP上对病例的MRI征象进行评价和记录,小组一致认定的病例均将其纪为jianchu.za经过平扫和增强扫描对病灶展开定性分析,SWI图像展开定量、定性分析,之后一起讨论的一致意见记为诊断结果。

4)代码维护。软件开发是迭代[7]过程,目标系统中自动代码和手动代码会随着需求的变化而做不断的修改。在实际运用该模式开发系统中,会遇到一个棘手的问题:在开发人员对生成代码做了较大的改动情况下,代码生成平台所依赖的数据模型发生了重大变化,而且这种变化经常发生,此时如果简单地重新生成代码并替代原有的生成代码,那么开发人员的部分工作就付之东流了。解决该问题的方法是利用CVS、Git等版本控制软件对代码进行版本管理[8]。过程如下:先将首次生成代码和基础框架合并,确保合并后的系统能正常运行,此时不写任何手动代码;再将此版本作为主分支,交由开发人员手动修改维护,在主分支上创建一个次分支,次分支专门负责生成代码的版本管理,即每次重新生成代码后,就替代现有的生成代码;最后由项目管理人员手动将次分支合并到主分支上。如此就能保留开发人员的手动修改代码,较好地解决了以上问题。

综上所述,在我国现代化建筑行业发展速度的背景下,对建筑工程施工技术的管理的研究也越来越深入。通过本文的研究和分析,将高层建筑深基坑施工管理措施归纳为以下几点:(1)做好勘察工作;(2)完善施工技术策略;(3)明确施工管理责任;(4)处理好止水工作。只有保障将以上几点管理策略落实,才能提升高层建筑深基坑施工质量。

5 结语

运用该模式分别开发了互联网金融行业的业务管理系统、广告商管理系统、代理商管理系统等,并投入使用。使用实践表明,这些系统不仅开发效率显著提高,还有效地降低了代码的冗余度,提高了系统的稳定性和可维护性。目标系统投入使用后,用户满意度高,取得了良好的社会和经济效益。在开发大型系统时,该模式的优势突出。值得一提的是,和普通Web应用系统开发模式相比,使用该模式开发对开发人员的要求较高,需要对软件的体系架构有很好的理解,并且对Java的Web系统开发和管理有较丰富的经验。另外由于该模式使用了较多的封装、自定义标签等技术,所以对服务器的要求较高。

参考文献:

[1] 雷文礼,任新成,张栋,高瑛.基于Java的学生选课系统的设计与实现[J].现代电子技术,2015,38(5):103-105.

[2] 尤澜涛,周晨,高莺.基于代码自动生成的JSP项目案例库建设[J].福建电脑,2014,30(8):33-34.

[3] 徐航,徐武平,徐爱萍.Web应用系统自动集成技术研究[J].电脑编程技巧与维护,2017(19):9-12.

[4] 魏小辉.基于JSP自定义标签的权限管理[J].生物技术世界,2013(3):156.

[5] 张传国,王伶俐.基于MEAN+SpringMVC的服务管理平台的设计与实现[J].计算机科学,2017,44(S2):538-541.

[6] 任佳丽,曹海燕.嵌入式软件自动代码生成和代码整合方法研究[J].太原理工大学学报,2013(4):518-521.

[7] 范玥,王淑玲.一种动态软件体系结构下的代码生成方法[J].小型微型计算机系统,2013(3):515-519.

[8] 韩华.借助Git实施医疗设备软件版本控制[J].中国医疗器械信息,2016,22(14):116-118.

 
姚素红
《江苏工程职业技术学院学报》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号