轻量级JavaEE框架的设计与实现文献综述
2020-06-23 20:43:11
一、选题背景
随着J2EE技术的普及,越来越多的软件实现采用了J2EE技术,Sun公司推出的J2EE(Java2 Platform Enterprise Edition)平台,继承了Java安全性高、可移植性高等特性。采用J2EE体系结构的Web应用系统具有稳定的面向对象程序设计思想和耦合度低,模块化程度高,易重用、易维护、易扩展等优点,满足了当前Web应用系统开发的需求,己成为应用系统开发的主流体系结构之一,并逐渐受到开发人员的青睐。
在这种背景下,基于J2EE的组件、技术、框架等相关产业迅速繁荣,市场上与J2EE 相关的技术和文档令人眼花缭乱,使得开发人员无所适从。J2EE软件开发团队越来越多得面临各种问题,比如软件开发周期短,需求变化频繁,J2EE软件体系复杂,组件繁多导致软件维护困难和频繁跳槽带来的技术流失。为解决上述问题,各大软件巨头,软件基金会都将目光对准了J2EE开源框架的研究和推广。比如,目前市场上负责表现层方面的优秀框架有Struts、Spring MVC等;负责业务层方面的有Spring;责持久层方面有Hibernate、JPA、Mybatis等。面对如此多的解决方案和开发工具,J2EE开发人员往往陷入复杂技术规范和技术陷阱的羁绊,众多开源框架过分重视技术上的新和异,有的已经违背了J2EE的一些核心思想,如松耦合、易部署等,开发团队如果盲目使用这些框架,难以开发出真正健壮的,完全自主的产品。软件已经向小型化、轻便化的方向发展,对硬件设备低投入的要求,促使轻量级J2EE框架的应用越来越广泛,目前,轻量级框架的发展非常的快,同一类型的框架不断有新框架推出,原因在于各个框架都不是很完美。
本课题的J2EE框架研究与实现也是基于这样的出发点,定制一个轻量级框架;使其能成为比较实用和通用的软件开发半成品框架或平台,能迅速的实现软件的构建,从而真正的实现软件工厂的目的。
二、研究现状
J2EE的基础是JAVA程序设计语言。目前Java语言已经是涵盖无线终端、微机、大中型服务器等各方面的基本语言之一,同时由于Java创新性采用虚拟机来模拟硬件环境,并将垃圾管理、线程管理等功能都交由虚拟机来做,从而大大解放了程序员的工作,使程序员不再为内存溢出等过程型语言常见的问题所困扰,提高了生产率。Java目前有三个发行版本,分别是适用于小型终端的micro版(J2ME)、适用于微机的标准版(J2SE)、适用于大型应用的企业版(J2EE)。其中J2EE是一套面向企业级应用的体系结构,就是J2SE在接口和类库上的延伸,J2EE继承了J2SE的所有特性,同时还针对Web应用、数据库源访问、远程操作等工作提供了对EJB(Enterprise Java Bean),Servlet,JSP和XML等技术的支持。J2EE的核心API与常用组件包括JDBC(Java数据访问接口)、JNDI(Java命名与目录接口)、EJB(企业级Java Bean)、RMI(远程控制接口)、Java IDL/CORBA(分布式接口)、JSP、Servlet、XML、JMS(Java消息服务)、JTA(Java事务接口)、Java Mail等。
J2EE框架标准将一个系统划分为WEB和EJB两个主要部分,从设计上可以抽象为表现层、业务层和持久层,这三个层次从一个高度将J2EE分离开来,实现了解耦的目的。因此,在实际编程中,大多数应用从功能上根据这三个层次来划分,但要这样做,没有技术上约束限制是比较困难的,因此一般借助J2EE具体技术来实现,可以使用EJB规范实现服务层和持久层,Web技术来实现表现层。
J2EE应用虽然从总体上划分了三个层次,但在针对每一层上的具体应用,要设计出可维护性、高拓展性的软件设计目标还是有一定的难度。首先,Web层的技术主要是 JSP/Servlet,在这层仍然可以表现业务逻辑和数据访问,那么其后果是WEB层与后台逻辑过于耦合,造成多层结构开发无法分工合作,其次,EJB被认为是一种重量级的高度侵入性的框架规范,重量级在于它的基于分布式的应用,高侵入性是指它制定了众多的接口和编码规范,要求实现者必须遵从。重量级的后果是部署复杂、运行慢、测试困难和代价高等,侵入性的后果就是,一旦系统基于侵入性框架设计开发,那么之后任何脱离这个框架的企图都将付出极大的代价。
针对以上的问题,轻量级框架的产生就是满足这样的需求,轻量级框架的发展非常的繁荣,在Web层出现了许多通用的Web开发框架,如Struts、Spring MVC等,为Web应用开发提供了便利。其中Struts是一个典型的MVC模式的Web开发框架,也是一个应用非常广泛的Web框架,应用Struts框架可以开发出基于MVC设计模式的Web应用构架。在业务层,非常成功的主要有Spring框架。Spring是一个以反向控制(IOC,Inversion of Control)为基础的轻量级框架。其设计目标是提供一种无侵入式的高扩展性构架。即无需代码中涉及Spring专有的类,即可将其纳入Spring容器进行管理。
持久层框架主要有EJB的实体Bean、Hiberante和MyBatis等等。良好的持久层框架应当实现对象关系映射,即ORM。因为有Hiberante、MyBatis这样的工具帮助我们实现对象和关系数据库表之间的映射,克服了对象和数据库阻抗不匹配问题,所以才使我们能够以面向对象方式来操作关系型数据库系统。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Mybatis是J2EE应用开发中的一个持久层框架,它通过配置的XML文件或者注解实现对象和存储过程,SQL语句的关联,而不是实现对象与数据库表的关联,并且可以实现动态生成SQL语句。MyBatis框架集合多种操作型关系数据的概念和方法,它是一个强大的数据访问工具和解决的方法。
轻量级框架的发展已经成为推动J2EE技术发展的重要动力,已经成为下一代J2EE技术构架的基础,目前,轻量级框架的发展非常的快,同一类型的框架不断有新框架推出,原因在于各个框架都不是很完美。传统的SSH开发框架就存在安全性不高、开发过程复杂、应用不方便等问题,比如Struts框架就存在安全性低,配置、校验繁琐等问题,而Hibernate对于持久层的封装过于完整,导致开发人员无法对SQL优化,不适用于批量修改和删除,而本课题的目标是提供一个设计灵活简便、权限安全便于设计实现、各层易测试、各种集成技术松耦合的企业应用框架。
三、课题设计内容
本课题要实现一个快速开发J2EE项目的的软件框架或者是软件平台,这个框架抽取了大多数的J2EE项目中设计(非业务逻辑)中的同类问题、性能问题和安全问题等解决方案,主要工作集中在:
1. 分析J2EE技术和框架技术的发展,特别是J2EE轻量级框架技术的特点和发展,研究J2EE技术设计的多层结构,及各对应各层的功能和特点。
2. 体系结构设计:先从整体上提出整个J2EE结构的架构,将层次划分为三层结构,即:表示层、业务层和数据持久层,设计对应每层的主要框架组件,包括MVC组件、IOC 组件、AOP组件和O/R映射组件等。
3. 在表示层给出了简洁、轻便的MVC设计思想。在业务层,给出了详细的IOC组件和AOP组件的设计和实现,在数据持久层,先从理论上分析其映射基础和策略,然后设计和实现O/R映射的组件,其实现过程中应用了许多前面实现的业务层组件的功能。
4. 最后对框架进行整体的优化,并提供一些拓展功能,优化Action参数,实现文件上传的功能,实现Servlet API完全解耦,实现安全控制框架和Web服务框架。
四、设计方案
针对J2EE的三个层次:表示层,业务层,持久层的划分,自已设计的轻量级框架同样是实现这三层结构,但与上面的有所不同,以下是框架的各个模块的层次结构图:
如上图,这是我们设计的框架的分层结构图,并且给出了各个层次对应包含的框架组件,下面分别介绍:
1. 表示层:主要是MVC框架,这部分功能主要是实现页面展示和控制器的实现。页面展示,主要是JSP页面,这部分主要负责数据和信息的显示,很少的业务逻辑,控制器主要是控制Web的流程。
2. 业务层:主要是基于IOC模式的容器部分和AOP容器两部分组成。IOC框架提供基础组件和业务组件的依赖注入,从而真正的实现帮助组件之间的解耦工作。AOP框架提供面向切面的编程,主要实现功能是组件拦截和织入功能。
3. 数据持久层:主要是实现对象到关系数据库的映射关系。实现对象到关系型数据库的持久映射。
五、参考文献
[1]姜林美,李国刚,杜勇前.结合AOP思想和依赖注入技术的轻量级MVC框架
[J].华侨大学学报(自然科学版),2016,(1).
[2]邹红霆.基于SSM框架的Web系统研究与应用[J].湖南理工学院学报(自然科学版),2017,(3).
[3]刘晓峥.Java SSH框架在Java Web中的应用[J].信息记录材料,2017,(9).
[4]李洋.SSM框架在Web应用开发中的设计与实现[J].计算机技术与发展,2016,(12).
[5]翟高粤.基于J2EE技术的SSH框架的改进及应用[J].Computer Era,2012,(10).
[6]李健,田立锋,郭瑞.Java SSH框架在Java Web中的应用[J].应用技术与研究,2013,(3).
[7]王养廷.基于Web的Java框架设计与实现[J].软件导刊,2014,(1).
[8]荣艳冬.关于MyBatis持久层框架的应用研究[J].信息安全与技术,2015,(12).
[9]樊振宇.深入理解SERVLET和JSP原理[J].电脑知识与技术,2011,(4).
[10]舒礼莲.基于Spring MVC的Web应用开发[J].计算机技术与发展,计算机与现代化,2013,(11).
[11]王养廷.基于Web的Java框架设计与实现[J].软件导刊(教育技术),2014,(1).
[12]丁春玲,路志强,彭伟.Java反射机制在数据持久层轻量级ORM框架中的应用研究,2017,(1).
[13]李枭,任维政,基于SpringMVC的多平台J2EE开发方式研究[J].吉林大学学报(信息科学版),2017,(9).
[14]张建军,刘虎,倪芳英,吉勇祥.基于SSH整合架构的研究与应用[J].湖南师范大学自然科学学报,2012,(12).
[15]Weixing WANG,Application of Lightweight Software Framework Based on SSH
,Computer Science amp; Education,2011,(8).
[16]Devadrita Dey Sarkar,Anavi jaiswal,Ankur Saxena,Understanding Architecture and Framework of J2EE using Web Application ,International Journal of Computer Science and Information Technologies ,2015.
[17]Dandan Zhang,Zhiqiang Wei,Yongquan Yang,Research on Lightweight MVC Framework Based on Spring MVC and Mybatis,Computational Intelligence and Design.2013.