本文通过对多种Java软件架构进行比较分析,提出了一种轻量级软件开发的方法,该方法使用Maven进行项目管理,采用Spring MVC和Hibernate框架搭建分层的软件架构,解决了软件开发复杂,效率低,管理混乱的问题。
Java语言自从推出以来一直是最流行的编程语言,社会上越来越多的开发人员利用Java技术进行软件开发,也出现了越来越多的Java框架,为了提高软件开发的质量和效率,降低软件复杂度,需要选择合理的框架搭建软件架构,并且需要相应的技术进行项目的构建和管理,本文研究适合中小企业软件开发的轻量级的Java软件架构,并采用流行的项目管理工具Maven管理软件开发,以降低软件开发的难度。
1、多种软件架构的比较
1)早期的Java企业级开发采用框架重量级EJB(Enterprise JavaBean)。EJB是定义了一个用于开发基于组件的企业多重应用程序的Java EE标准。因为EJB容器默认为应用提供了EJB规范中的所用功能,以它为架构的应用程序需要消耗大量资源,具有侵入性,所以是一种重量级框架。
比如,EJB启动的时候,需要消耗大量的资源,内存,CPU等。其次还表现在EJB巨大而复杂的规格说明以及代码规范。现在的EJB3.0增加了许多新的规范,例如元数据支持,实体Bean模型访问Bean上下文的新方法和运行时环境等,但是EJB仍然具有过于复杂的特性。
基于重量级框架EJB的软件架构没有很好的灵活性来应对需求的变化,缺乏实用性,所以随着SOA和其它力量的兴起,软件开发也越来越多地选择轻量级的部署平台。
2)常见的轻量级组合框架采用Struts2、Spring和Hibernate设计。Struts2是一个主流的基于MVC模式的Web开发框架,该框架包括三部分:核心的控制器组件、业务控制器和用户实现的业务逻辑组件。
其中,Struts2框架提供了核心控制器,用户实现业务控制层和业务逻辑层,具体实现时业务逻辑层采用面向接口编程;Hibernate是一个基于Java的对象关系映射(ORM)开源框架,对底层的JDBC进行了非常轻量级的封装,开发人员通过它可以使用面向对象的编程思想操作数据库。
使用JDBC的应用都可以用Hibernate替代,并且Hibernate可以取代重量级EJB在Java EE架构中的应用,完成数据持久化操作;Spring是为了降低企业应用开发的复杂性而创建的轻量级Java开源框架。
Spring框架的采用分层架构,分层架构的优点是使用者根据需求选择使用其中的组件,并且可以提供集成的框架。Spring通过核心的控制反转(IoC)和面向切面(AOP)功能,使用简单的JavaBean来完成以前由重量级EJB完成的应用。
Spring的应用不仅限于服务器端,任何的Java应用都可以选择需要的Spring功能模块。所以,Spring是一个分层的一站式轻量级开源框架。
Struts2、Hibernate、Spring组合的轻量级架构如图1所示。
3)目前流行应用Spring MVC完成Web开发。Spring的轻量级和低入侵性使得其应用越来越多,由此发展了Web模块,融合在Spring Web Flow里面,即Spring MVC。
Spring MVC是提供了构建 Web 应用程序的全功能MVC模块。该功能和Spring其他功能一样是一种可插入的MVC架构[1]。Spring MVC轻量级框架侧重于减小开发的复杂度,比较适用于开发中小型企业应用。所以在使用Spring进行Web开发时,越来越多的使用SpringMVC框架取代集成其他MVC开发框架(如Struts2)。
2、轻量级软件架构的搭建
基于了Spring和Hibernate轻量级的特点,采用Spring MVC和hibernate整合完成分层的'轻量级软件架构,应用Hibernate的对象持久化功能进行域模型层和DAO(Data Access Object)层的实现,应用Spring MVC定义控制层(Controller)和视图层,应用Spring的对象管理功能管理DAO层、服务层(Service)和控制层的对象,降低软件组件间耦合性。
在进行Spring、Spring MVC和Hibernate轻量级架构搭建时,为使应用耦合度低不依赖其他容器,采用基于简单Java对象的方法,这可以提高软件的开发调试效率。具体搭建该轻量级软件架构需要注意以下几点。
1)导入Spring和Hibernate及其他功能(例如数据库驱动)的支持Jar包。
2)Spring MVC的核心是DispatcherServlet,,这个Servlet充当Spring MVC的前端控制器,必须在web.xml中进行配置。
3)必须定义基于这个servlet名字的XML文件,DispatcherServlet在加载时会从该文件中加载Spring上下文。
4)定义相应功能的处理类和返回视图。
采用的轻量级框架Spring和Hibernate都是基于Java的开源框架,在开源社区中为这些框架提供了成熟的API和许多快速构建工具以及可供参考的开源代码,这更利于软件的快速开发。
3、Maven的应用
在进行轻量级的软件架构开发项目的过程中,还必须有良好的项目管理工具。Maven是一款通过简短的描述信息来管理项目的构建,报告和文档的软件项目管理工具,它的核心是基于项目对象模型(POM)。Maven包含了一个项目对象模型、一组标准集合、一个项目生命周期、一个依赖管理系统和用来运行定义在生命周期阶段中插件目标的逻辑。
应用Maven,可以用一个明确定义的项目对象模型来描述项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。Maven可以让开发人员快速地构建一个项目,有效地解决包管理和项目发布问题,并且可以与持续集成进行无缝对接。对于大型的系统,采用Maven 作为项目管理工具,可以有效地进行分工协作。
Maven的这种应用无侵入性,本身就是轻量级软件架构的需要。
将Maven应用于基于Spring MVC的轻量级软件架构,可以有效的提高项目开发进度,降低项目复杂度,主要方法为以下几种。
1)为项目定义pom.xml文件,该文件中定义了项目对象模型,是Maven脚本的基础,这个模型定义了项目的各种属性,脚本都是基于该模型工作;此外在对象模型中对所依赖的包有明确的定义,如定义使用哪个版本的包。
2)Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,Maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,并且用maven编译的项目在发布的时候只需要发布源码,小得很,使得项目更加轻量级。
3)Maven还为项目提供了大量的附加脚本降低项目开发的复杂性,例如生成网站、生成文档、源代码参考手册等,利用Maven只需运行相应脚本。
4、结论
良好的软件架构和项目管理工具是软件开发成功的基础,不仅能够降低开发难度,节约开发成本,还能够极大的提高软件的可扩展性和可维护性。基于Spring、Spring MVC和Hibernate搭建的软件架构以控制器、模型和视图(MVC)为基础,对底层JDBC进行对象封装,提供业务模型基础,并应用分层和按需集成方式开发web应用;Maven服务于基于Java平台的项目构建、依赖管理和项目信息管理,来降低系统各个模块之间的耦合度,使得代码的复用性大大提高,可以实现项目的并行开发,进一步提高系统开发的可扩展性及稳定性,降低软件开发难度。
Spring MVC、Hibernate框架以及Maven工具发展迅速,公司项目采用它们的比例在持续增长,在软件开发时可以借鉴。
【基于Maven的轻量级Java软件开发研究论文】相关文章:
基于CMMI的软件开发模型应用研究论文11-04
基于软件开发下外观模式的改进研究论文11-04
云平台下基于包装设计的软件开发研究论文10-29
基于Java EE的Web系统中数据库设计技术研究论文11-06
基于柔性内部控制研究论文10-27
基于EVA的价值创造研究论文10-26
基于课堂的教师行动研究的论文10-21