一种轻量级Java EE快速开发框架

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:chenhua99
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对企业应用系统开发采用的轻量级Java EE框架的复用与维护问题,在对Hibernate、Spring和Struts三个开源框架分析的基础上,提出了整合三个框架的配置方案。并设计一个基于此方案的快速开发框架。实现的快速开发框架能自动将零散的框架自动集成,并根据数据表及代码模板生成各逻辑层的初始代码,为新项目生成一个稳定的初始开发平台。
  关键词:Java EE;快速框架;代码自动生成
  中图分类号:TP311 文献标识码:A文章编号:1007-9599 (2011) 20-0000-02
  A Speed Development Framework of Lightweight Java EE
  Ye Wenlai
  (School of Computer Engineering,Jimei University,Xiamen361021,China)
  Abstract:In order to improve code reuse and maintenance of lightweight Java EE framework which used in the development of enterprises system,this paper proposes a method to integrate the three open source frameworks including Hibernate,Spring and Struts after thorough analysis.A speed development framework is created based on this method.It integrates each separate framework automatically and also generates the initial code for each logic layer according to data table and code template,build a stable development platform for new project.
  Keywords:Java EE;Speed Development Framework;Code Generation
  Sun公司推出的Java EE(Java Platform)平台[1]已经日趋成熟,Java EE得到了广泛的应用。但是Java EE应用的开发比较复杂。在开源领域涌现出许多优秀的轻量级Java EE框架,将Spring、Struts和Hibernate整合,用Struts来架构表现层,Spring构建业务层,让Hibernate承当数据持久层职责,是目前最典型的应用[2]。
  持久层采用Hibernate[3]作为ORM框架,处理数据库操作。表现层采用了Struts[4]作为MVC解决方案,主要用于处理页面请求。当页面请求到达时,Struts自动调用Action类的方法,Action类的方法中可封装Service层的方法。业务层是整个系统的核心,由Spring[5]框架管理,主要由工厂类(Service Factory)和一系列服务接口及其实现类组成。虽然Struts、Spring和Hibernate同属Java EE领域的轻量级框架,但是各自之间的技术存在差异,开发人员往往需要花费大量时间整合:搭建时需要引入很多依赖的包文件,而且各个框架的包文件存在着重复和冲突,需要开发人员耐心的调试。除此之外,框架的配置文件数量繁多,正确配置也是一件让人头疼的事。而且每开发新项目时又得重新配置。
  本文实现的轻量级Java EE快速开发框架的目标是根据一般企业级应用系统的体系架构以及项目的组织结构,自动建立集成Hibernate、Spring和Struts框架模板项目,形成一个以Spring为核心的项目脚手架[6],并且提供内置一个代码生成器,根据数据库中已经设计好的数据表结构辅助按照Free Marker模板文件[7]快速生成表现层、业务层和数据持久层的辅助代码,包括对表格数据实现基本的增加、删除、修改和查询的JSP页面。利用快速开发框架,开发人员通过简单的操作快速搭建一个完整稳定的项目开发平台,并生成项目的基础代码。在此基础上添加或调整模块的逻辑代码,不仅提高了开发速度,减少开发人员在项目开始初期重复编码活动,而且规范项目结构以及编码风格,让他们有更多的时间关注业务领域的问题。
  一、快速开发框架设计
  (一)设计思路
  快速开发框架主要由框架整合和基础代码自动生成两部分组成,框架采用Apache Ant[8]自动化构建技术,根据预先定义好的项目模板,自动整合Spring、Struts和Hibernate及项目中常用的其他插件,生成项目初始框架:引入各框架所依赖的包文件,并生成各框架的初始化XML配置文件,并创建项目的目录结构,为后继的代码自动生成做准备。
  在此基础上,代码生成模块使用JDBC技术连接数据库,从指定数据库中查询出需要生成代码的数据表,根据Free Marker技术定义的模板文件生成各个部分不同逻辑层的基础代码,建立项目开发的初始环境。框架总体体系如图1所示。
  
  图1.快速开发框架总体体系结构
  实现的快速框架包含5个大类子目录:src、plugins、template、Web、generator和一个Ant项目部署文件和属性文件。各大类子目录又包含许多子目录,各级目录存放不同功能和用途的代码、插件和模板。
  (二)Ant框架整合及插件安装体系结构
  使用Ant技术进行框架整合时,最重要的是编写Ant构建配置文件。文件定义了构建过程,默认命名为build.xml。Ant构建配置文件本质是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定义多个目标(由target元素配置)。每個目标中可以定义多个子任务,同时还需定义任务的执行序列。Ant构建目标时按照配置文件定义执行构建任务。[8]。
  用户可以重新改写快速开发框架的build.xml文件配置,根据项目需要选择集成的框架。
  (三)基于Free Marker模板引擎代码生成器体系结构
  快速开发框架使用Free Marker技术定义代码的模板文件。Free Marker是一个模板引擎,一个基于模板生成文本输出的通用工具。代码生成模块采用JDBC技术,扫描指定数据库中的表,利用Database Meta Data接口和Result Set Meta Data接口读取表结构信息,将解析出来的表信息匹配代码模板文件,逐一生成代码。
  代码生成器搜索数据库自动匹配模板文件,生成对应的Action、Dao、Model、Manager以及JSP页面代码。因此,各个部分都需要事先定义出模板文件。由于这些代码文件分属于架构的不同逻辑层,在项目中存放的位置也不同。根据不同的数据库表名,生成器按照路径模板自动归类存放。
  Action是Struts框架页面请求的处理逻辑类,根据通用Action类思想设计其代码模板,模板结构如下所示:
  package ${basepackage}.action;
  //…
  <#include "/java_imports.include">
  public class ${className}Action extends BaseStruts2Action implements Preparable,ModelDriven{
   protected static final String QUERY_JSP = "${jspFileBasePath}/query.jsp";
   //….
   <#if className = "UserInfo">
   protected static final String LOGIN_JSP = "/login.jsp";
   protected static final String WELCOME_JSP = "/welcome.jsp";
  
   //…
   private ${className}Manager ${classNameLower}Manager;
   private ${className} ${classNameLower};
   <#list table.compositeIdColumns as column>
   ${column.javaType} id = null;
  
   /** 執行搜索 */
   public String list() {
   PageRequest pageRequest = newPageRequest(DEFAULT_SORT_COLUMNS);
   Page page = ${classNameLower}Manager.findByPageRequest(pageRequest);
   savePage(page,pageRequest);
   return LIST_JSP;
   }
  }
  (四)快速开发框架执行流程
  快速开发框架执行过程如图3所示。开发人员首先新建一个Web工程,同时拷贝快速框架的5个目录所有文件至项目根目录。配置项目编码、源码路径和classpath等。执行build.xml集成各框架。而后选择应用模块类型以及数据库连接参数,如模块基本的增、删、改和查操作等。运行代码生成器根据所选择的应用类型,从代码模板库里装载相应的代码模板,扫描数据库中表信息,自动生成各逻辑层的配置文件及对象的源文件,到相应包目录下。至此生成项目的初始架构以及各层的初始代码,即可获得一个带有基本功能的项目初始架构。
  
  图2.系统执行流程
  二、系统实现效果
  快速开发框架使用时,一些步骤还是需要人工进行干预。如前期的项目建立,build.xml配置文件的定制与执行以及代码生成器的执行都需要用户操作。目前不管build.xml还是代码生成器执行,还未提供可视化界面供用户操作。项目在Eclipse中以Application的方式执行代码生成器,用户可以直接在代码中修改,确定需要对那些表生成的项目源文件。默认是库中所有数据表。
  三、结束语
  通过项目的开发实践证明,快速开发框架能有效的节省代码开发量,并且能规范开发流程。快速开发框架还需要进一步的完善,使其允许用户根据项目的需要选择安装不同的框架或插件。框架中使到的项目及代码模板没有提供可视化编辑界面,各部分还处于一个松散的状态,使用时,还需要手工维护项目模板,配置文件以及代码模板等,容易出错。还有,代码模板文件单一,且数据库表用途难以识别,系统不能根据数据库表的用途生成不同类型的代码。目前只能扫描所有表,生成同种类型的代码。这些都是下一阶段研究的重点。
  参考文献:
  [1]Sun Developer Network.Enterprise BluePrints[EB/OL].
  http://java.sun.com/blueprints/enterprise/index.html,2010-10-10
  [2]李守振,张南平,常国锋.Web应用分层与开发框架设计研究[J].计算机工程,2006,32(22):274-276
  [3]夏昕,曹晓钢,唐勇.深入浅出Hibernate[M].北京:电子工业出版社,2005,5
  [4]戎伟,张双.Struts-Java流行服务器,框架,工具及整合应用[M].北京:人民邮电出版社,2006,10
  [5]计文柯.Spring技术内幕—深入解析Spring架构与设计原理[M].北京:机械工业出版社,2010,1
  [6]David Heinemeier Hansson. Ruby on Rails Guides[EB/OL].
  http://guides.rubyonrails.org/,2010-10-10
  [7]FreeMarker Project Team.What is FreeMarker[EB/OL].
  http://freemarker.sourceforge.net/index.html,2010-10-10
  [8]Apache Ant Project Team.Ant Introduction[EB/OL].
  http://ant.apache.org/manual/index.html,2010-10-10
  [基金项目]福建省自然科学基金计划资助项目(项目编号:2008J04005)
  [作者简介]叶文来(1976-),男,讲师,硕士,从事软件建模研究。
  
其他文献
为了了解疫苗的使用剂量与抗体消长规律的相互关系,并降低生产成本,通过对大耳白兔接种兔出血症病毒(RHDV),无菌分离各个组织后,应用血凝试验和RT-PCR方法检测各组织的血凝效价
目前,数字电视已在我国开始商用化。本文首先介绍数字电视,对数字电视系统中常见的数字调制技术进行了分析。
当前,无线传感器网络(WSN)是国内外备受关注的一个新兴前沿热点领域,已经吸引了许多研究者和机构的广泛关注。本文简单介绍了一下无线传感器网络以及MAC协议,列举了在设计无线传感
从马铃薯组培苗上分离出1株内生细菌StC01,菌体短杆状,菌落呈圆形黄色。经过生理生化鉴定及16S rRNA基因测序鉴定,属于短小杆菌属(Curtobacterium)。对马铃薯组培苗接种培养试验表
以目前河南省生产上推广的小麦品种和河南省洛阳市农业科学研究院新培育的小麦品种为材料,用Logisitic方程对黄淮麦区不同生态型小麦品种的籽粒灌浆过程进行了拟合;用变异系
160多年前,科学社会主义诞生。160多年来,社会主义从空想到科学、从理论到运动、从一国实践到多国实践、从传统社会主义到中国特色社会主义,走过了波澜壮阔的发展历程。实践带给
舅舅和阿姨怎么也没想到,具有8年留学经历的亲外甥,居然将诈骗的矛头对准了自己。归国后无业的安曙光,虚构花旗银行亚洲区总裁秘书身份,多次诈骗亲友——
本文分析了节能减排与经济增长方式转变的内涵与相互关联,主要从制度层面揭示节能减排与经济增长方式转变的难点,并提出相应的政策建议,以期推动经济可持续发展长效机制的建
从分析信息化医院建立的重要性入手,对目前医院信息化建设现状及存在的主要问题进行分析,并总结经验教训,参照业务流程再造的思想对医院信息化建设进行了创新管理,取得了良好的效
本文着重分析了高校多媒体教室的维护以及管理方法,维护方法主要是做到专人专管,做好日常维护工作和定期检修。而管理方法主要包括:建立合理科学的管理制度,提高管理人员的素质,加