聶艷明等
摘要:鑒于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作為一種基于Java的企業級應用開發整體技術解決方案,本身具有非常強的技術兼容性和整合性。Java EE采用包括表現層、業務層、持久層和數據層的分層架構(如上頁圖4),各層可根據實際需求選擇具有相應特點和適應場合的技術或框架的組合進行Java EE應用開發。在Java EE具體教學過程中,可以采用以Java EE架構原理的理解和掌握為核心、以基于MVC模型的開發技術作為基礎、以基于SSH框架的開發技術作為重點、以EJB技術作為高級內容,輔以JSF、JPA等為補充,確保Java EE課程教學在抓住核心和關鍵的同時,又拓展了學生對Java EE主流技術和框架的了解,為Java EE企業級應用開發實戰奠定了堅實的理論知識基礎、開拓了廣闊的解決方案視野。
為了增強基于主流模型/框架的Java EE應用開發方式對比分析的Java EE課程教學效果,提供具體的案例項目實踐至關重要。對于案例業務項目的選取,需從代表性、適時性、易理解性和針對性等方面給予考慮。功能上除了實現典型業務之外,同時兼顧系統對角色/權限、工作流、事務、日志、安全等的支持。采用用例驅動的面向對象方法,特別強調Java EE技術架構,分別應用上文所述的三種主流Java EE應用開發模型/框架以及基于Java EE分層架構提供其他技術/框架(如Struts+Spring+MyBatis)組合對項目案例進行開發,從理論指導和實踐示范兩個方面增強Java EE課程的教學效果。
結論與展望
作為一門綜合性極強的課程,Java EE課程具有工程實踐性、項目驅動性和知識整合性等特點,需要具有創新性的教學方式和方法。而當前該課程教學與建設基本上仍然沿用一般課程的模式。鑒于此,本文提出了基于JSP+Servlet+JavaBean的MVC模型、Struts+Spring+Hibernate的輕量級框架SSH以及JSF+EJB+JPA重量級框架JEJ的Java EE開發方式對比的教學方法,并以基于面向對象軟件工程方法對典型案例項目進行開發作為教學及實踐案例,探索了Java EE課程的課堂教學與實踐以及自身建設。
在對該教學方法進行深度實踐的基礎上,我們計劃在Java EE課程中逐步引入基于項目開發驅動的教學方法,同時完善案例項目生成與開發體系。并將借鑒CDIO[5]思想來指導和梳理該Java EE課程的教學流程與具體的改進措施,以期Java EE課程教學的可持續發展。
參考文獻:
[1]IBM精品課程——J2EE企業級開發[EB/OL].上海:同濟大學,2008.http://sse.tongji.edu.cn/j2ee/.
[2]謝怡寧.J2EE課程教學改革的探索與實踐[J].江蘇教育學院學報(自然科學版),2010(01):46-49.
[3]陳觀林.《J2EE架構與應用開發》課程的教學改革與實踐[J].計算機時代,2008(04):71-72.
[4]張幸.應用型本科信息管理專業基于J2EE編程實訓的探索[C].西安:第十一屆全國經濟管理院校工業技術學研究會,2012:51-53.
[5]陶勇芳,商存慧.CDIO大綱對高等工科教育創新的啟示[J].中國高教研究,2009(11):81-83.
基金項目:2014年陜西省教育科學“十二五”規劃課題項目“面向實用型軟件工程人才培養的Java EE課程教學與實踐改革探索研究”研究成果(項目編號:SGH140541);2015年校級教學改革研究項目“兼顧知識融合的《Java EE技術》課程教學方法創新研究與實踐”研究成果(項目編號:JY1504051)。