轻量级JavaEE框架的设计与实现开题报告
2020-06-23 20:51:07
1. 研究目的与意义(文献综述包含参考文献)
一、选题背景
随着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.
2. 研究的基本内容、问题解决措施及方案
要解决的问题:
如何实现一个轻量级的Java EE的框架?
如何在框架中实现MVC的设计思想?
如何使框架具备AOP特性?
如何完成对数据库操作的封装以及实现数据库关系表与类对象之间的映射?
如何优化框架,拓展Web服务插件和安全控制插件?
拟采用的研究途径:
查阅有关JavaEE轻量级框架方面的文献资料,并阅读开源社区,如Github的优秀开源框架,同时参考一些类似的设计方案,借鉴并结合自己所做,进行设计优化。
学习借鉴目前流行的开源框架,Spring,Mybatis等,研究其用到的设计思想,并运用到自己的框架中。
通过搭建简单的信息管理网站对框架进行验证。