论文部分内容阅读
摘要:鉴于Java EE课程具有的工程实践性、项目驱动性和知识整合性,本研究结合该课程的教学建设现状,对比分析了几种主流Java Web开发模型/框架(即经典MVC模型、SSH轻量级框架以及基于EJB的Java EE重量级框架)的开发方式,并以基于项目驱动的面向对象软件工程方法开发的典型业务项目作为教学案例。该研究对Java EE课程教学模式改革以及课程案例建设具有积极意义。
关键词:Java EE主流开发模型/框架; MVC(Model-View-Controller); SSH(Struts Spring Hibernate)
中图分类号:G642.0 文献标识码:B 论文编号:1674-2117(2015)18-0107-03
作为一门高校高年级软件工程专业必修课程,Java EE的目的是让学生具备基于Java EE技术进行企业级应用软件开发的专业技能,具有极强的工程实践性;作为一种主流的企业级应用开发技术,Java EE课程中所涉及的技术及其整合的示例需来自于更有说服力和针对性的业界第一线项目,使得课程学习与基于Java EE的企业级应用项目开发有机融合,因而又具有明显的项目驱动性;该课程要求在面向对象程序分析设计、Java编程语言等的基础上,整合数据库、网络、分布式系统等核心专业课程,全面了解Java EE的相关理论和核心技术,进而掌握如何构建基于Java EE技术的企业级应用,具有很强的知识整合性。因而,Java EE课程教学必须围绕该课程以上三个特性(即工程实践性、项目驱动性、知识整合性)来进行。而采用基于几种主流模型/框架开发方式的分析对比,配合合理有效的Java EE技术课程项目案例,有助于改进现有Java EE课程教学模式,对相关技术融合有着较强的促进作用,有助于本课程教学的持续改进。
Java EE课程教学研究现状
目前,国内绝大多数示范性软件学院都开设了Java EE课程,其他院校的软件工程专业也大都开设了该课程。作为IBM精品课程,同济大学软件学院的“J2EE企业级开发”课程在项目实训及代码训练强化等方面颇具特色。[1]哈尔滨理工大学计算机科学与技术学院的谢怡宁[2]等提出了诸如任务驱动等具有针对性的Java EE课程教学改革方案。浙江大学城市学院计算机系的陈观林[3]等探讨了Java EE课程教学模式改革的思路,提出了采用实例化教学方式和引入课程设计环节以改进教学手段和考核方法。北京石油化工学院经济管理学院的张幸[4]以J2EE编程实训课程教学改革为例阐述了如何在编程技术的学习中掌握管理知识的方法。以上关于Java EE课程教学改革的研究,笔者都进行了有益的探索。但Java EE课程内容庞杂,知识点和关键点繁多,理论与实践相结合的需求突出,易造成教学目标定位的迷失,进而影响到本课程的教学效果。西北农林科技大学为软件工程等四个专业设置的“Java EE技术”课程开始于2008年,我们在该课程的课堂教学、上机实践及校企联合实训等方面进行了一系列探索和创新。本研究从Java EE本身的核心理念和当前主流开发模型/框架双管齐下,探索Java EE课程的创新性教学方法。
主流开发模型/框架
Java Web开发技术发展到今天已经出现多种开发模型和技术框架,具有代表性的包括基于MVC的JSP Servlet JavaBean模型(以下简称为MVC模型)、轻量级SSH框架(以下简称为SSH框架)和重量级的Java EE(以JSF EJB JPA为核心技术)框架(以下简称为JEJ框架)。
MVC模型:基于该模型(如图1)进行的Java Web应用开发,只是实现了模型、视图和控制器的分离以及交互过程规范,并未提供相应的基础支持,因而开发效率仍然不高。但由于该模型未采用任何第三方框架,因此是一种最为灵活的Java Web应用开发模式。
SSH框架:此框架(如图2)中,Struts作为Web表现层的解决方案,自身为MVC都提供了相应组件;Spring是一个轻量级的基于控制反转(IoC) 和面向方面编程(AOP)的容器框架,为业务逻辑层提供了一个轻量的解决方法;Hibernate则是一个开放源的对象关系映射(ORM)框架,对JDBC进行了对象封装。而SSH框架则整合了Struts、Spring和Hibernate三种框架的各自优势,为Java EE应用开发提供了一个效率高、集成性好的轻量级方案。
JEJ框架:此种开发模式(如图3)中,JSF用于表现层,在用户视图事件响应粒度方面表现尤为突出;EJB作为业务层逻辑层,可实现组件粒度的分布式部署,在支持应用系统可伸缩性方面具有天然优势;JPA作为持久层技术框架,可整合现有的主要持久层实现技术,如Hibernate、TopLink、OpenJPA等。主要适用于强调应用分布部署、可伸缩性等能力的大型企业级应用。
几种开发方式的分析对比
对于一般性项目,可采用基于MVC模型进行开发。对于那些可扩展性和可维护性等为关键的项目,就需要采用基于框架的开发方法。相较而言,无论是轻量级框架SSH还是重量级框架JEJ,在安全性、事务性等方面的支持都较为完善。但在支持系统分布部署的能力方面,JEJ框架具有先天性优势,可支持组件粒度的分布部署,特别适合于企业级应用甚至是云端应用的开发。从学习者的角度,基于经典的MVC模型来开发实践案例项目有助于夯实Java Web开发技术基础,基于SSH框架开发系统则可以让学生深刻体验到其在效率与便利性等方面所具有的优势,而基于重量级的JEJ框架则可以使学生了解到在应对系统的分布能力与可伸缩性等方面要求时该如何合理选择技术和框架。而采用三种开发模型/技术框架对同一个实践案例项目进行开发,可以更直观地体验各自优势,通过对比性方法学习和实践,可对Java EE应用开发技术有更为透彻的理解和掌握。
关键词:Java EE主流开发模型/框架; MVC(Model-View-Controller); SSH(Struts Spring Hibernate)
中图分类号:G642.0 文献标识码:B 论文编号:1674-2117(2015)18-0107-03
作为一门高校高年级软件工程专业必修课程,Java EE的目的是让学生具备基于Java EE技术进行企业级应用软件开发的专业技能,具有极强的工程实践性;作为一种主流的企业级应用开发技术,Java EE课程中所涉及的技术及其整合的示例需来自于更有说服力和针对性的业界第一线项目,使得课程学习与基于Java EE的企业级应用项目开发有机融合,因而又具有明显的项目驱动性;该课程要求在面向对象程序分析设计、Java编程语言等的基础上,整合数据库、网络、分布式系统等核心专业课程,全面了解Java EE的相关理论和核心技术,进而掌握如何构建基于Java EE技术的企业级应用,具有很强的知识整合性。因而,Java EE课程教学必须围绕该课程以上三个特性(即工程实践性、项目驱动性、知识整合性)来进行。而采用基于几种主流模型/框架开发方式的分析对比,配合合理有效的Java EE技术课程项目案例,有助于改进现有Java EE课程教学模式,对相关技术融合有着较强的促进作用,有助于本课程教学的持续改进。
Java EE课程教学研究现状
目前,国内绝大多数示范性软件学院都开设了Java EE课程,其他院校的软件工程专业也大都开设了该课程。作为IBM精品课程,同济大学软件学院的“J2EE企业级开发”课程在项目实训及代码训练强化等方面颇具特色。[1]哈尔滨理工大学计算机科学与技术学院的谢怡宁[2]等提出了诸如任务驱动等具有针对性的Java EE课程教学改革方案。浙江大学城市学院计算机系的陈观林[3]等探讨了Java EE课程教学模式改革的思路,提出了采用实例化教学方式和引入课程设计环节以改进教学手段和考核方法。北京石油化工学院经济管理学院的张幸[4]以J2EE编程实训课程教学改革为例阐述了如何在编程技术的学习中掌握管理知识的方法。以上关于Java EE课程教学改革的研究,笔者都进行了有益的探索。但Java EE课程内容庞杂,知识点和关键点繁多,理论与实践相结合的需求突出,易造成教学目标定位的迷失,进而影响到本课程的教学效果。西北农林科技大学为软件工程等四个专业设置的“Java EE技术”课程开始于2008年,我们在该课程的课堂教学、上机实践及校企联合实训等方面进行了一系列探索和创新。本研究从Java EE本身的核心理念和当前主流开发模型/框架双管齐下,探索Java EE课程的创新性教学方法。
主流开发模型/框架
Java Web开发技术发展到今天已经出现多种开发模型和技术框架,具有代表性的包括基于MVC的JSP Servlet JavaBean模型(以下简称为MVC模型)、轻量级SSH框架(以下简称为SSH框架)和重量级的Java EE(以JSF EJB JPA为核心技术)框架(以下简称为JEJ框架)。
MVC模型:基于该模型(如图1)进行的Java Web应用开发,只是实现了模型、视图和控制器的分离以及交互过程规范,并未提供相应的基础支持,因而开发效率仍然不高。但由于该模型未采用任何第三方框架,因此是一种最为灵活的Java Web应用开发模式。
SSH框架:此框架(如图2)中,Struts作为Web表现层的解决方案,自身为MVC都提供了相应组件;Spring是一个轻量级的基于控制反转(IoC) 和面向方面编程(AOP)的容器框架,为业务逻辑层提供了一个轻量的解决方法;Hibernate则是一个开放源的对象关系映射(ORM)框架,对JDBC进行了对象封装。而SSH框架则整合了Struts、Spring和Hibernate三种框架的各自优势,为Java EE应用开发提供了一个效率高、集成性好的轻量级方案。
JEJ框架:此种开发模式(如图3)中,JSF用于表现层,在用户视图事件响应粒度方面表现尤为突出;EJB作为业务层逻辑层,可实现组件粒度的分布式部署,在支持应用系统可伸缩性方面具有天然优势;JPA作为持久层技术框架,可整合现有的主要持久层实现技术,如Hibernate、TopLink、OpenJPA等。主要适用于强调应用分布部署、可伸缩性等能力的大型企业级应用。
几种开发方式的分析对比
对于一般性项目,可采用基于MVC模型进行开发。对于那些可扩展性和可维护性等为关键的项目,就需要采用基于框架的开发方法。相较而言,无论是轻量级框架SSH还是重量级框架JEJ,在安全性、事务性等方面的支持都较为完善。但在支持系统分布部署的能力方面,JEJ框架具有先天性优势,可支持组件粒度的分布部署,特别适合于企业级应用甚至是云端应用的开发。从学习者的角度,基于经典的MVC模型来开发实践案例项目有助于夯实Java Web开发技术基础,基于SSH框架开发系统则可以让学生深刻体验到其在效率与便利性等方面所具有的优势,而基于重量级的JEJ框架则可以使学生了解到在应对系统的分布能力与可伸缩性等方面要求时该如何合理选择技术和框架。而采用三种开发模型/技术框架对同一个实践案例项目进行开发,可以更直观地体验各自优势,通过对比性方法学习和实践,可对Java EE应用开发技术有更为透彻的理解和掌握。