翟寶峰,戴永彬,武志剛,王學志
“Java EE應用開發(fā)框架”課程內(nèi)容的優(yōu)化
翟寶峰,戴永彬,武志剛,王學志
(遼寧工業(yè)大學 軟件學院,遼寧 錦州 121001)
針對課程內(nèi)容性質,分析了常用應用框架的優(yōu)缺點,確定了SSM組合框架作為課程的主導內(nèi)容。該課程具有較強的綜合實踐性,以Java Web應用程序三層架構為主線,對框架各種技術進行了詳細分析優(yōu)化篩選,使課程內(nèi)容系統(tǒng)、緊湊、實用。合理設計各知識點的學時數(shù),采用有效的教學方式,通過教學實踐證明,學生能夠清晰準確地掌握課程的核心技術,實踐能力得到了顯著提高。
Java EE應用開發(fā)框架;軟件教育;課程內(nèi)容優(yōu)化; SSM教學
Java Web應用程序以其跨平臺的特點在互聯(lián)網(wǎng)上得到了廣泛的應用。它由后臺數(shù)據(jù)庫技術、Java Web服務器編程技術、前臺網(wǎng)頁編程技術三部分組成, Java Web服務器編程技術是其核心部分,經(jīng)過多年發(fā)展逐漸形成了相關的框架。近些年來,框架發(fā)展迅速、層出不窮,為應用程序的開發(fā)提供了便利條件。Java應用程序框架也受到了各大軟件開發(fā)公司的歡迎,目前已成為業(yè)界經(jīng)常采用的一種開發(fā)技術。
Java Web應用程序開發(fā)作為軟件工程專業(yè)的一個重要培養(yǎng)方向,“Java應用程序框架”課在專業(yè)課中占有重要地位。由于Java應用程序框架很多,內(nèi)容繁雜,概念較多,學習起來有一定困難,在教學中,要選擇合適的框架,對其內(nèi)容進行合理篩選,使教學內(nèi)容系統(tǒng)、緊湊、實用。另外,課程與其它專業(yè)課聯(lián)系密切,綜合實踐性較強,在各教學環(huán)節(jié)的設計安排上,要適應課程的性質,學生學習起來,才能準確有效地掌握課程中的各項技術。
Java有Java SE、Java EE及Java ME三種開發(fā)平臺,作為企業(yè)版開發(fā)平臺的Java EE由多個程序框架來實現(xiàn)。Java EE應用框架早期采用的是EJB,它是一種適用于大型企業(yè)級項目開發(fā)的重量級框架,而現(xiàn)在互聯(lián)網(wǎng)上的應用項目以中小型為主,合適的輕量級應用框架逐漸取代了EJB,成為Java Web應用程序開發(fā)的主流框架。
當前Java EE輕量級框架常用的是SSH: Spring + Struts2 + Hibernate和SSM: Spring + Spring MVC + MyBatis 兩大整合類別。SSM相對于SSH具有分層清晰,易于維護與擴充,避免安全漏洞,學習及開發(fā)成本低,又適應中小型項目開發(fā)等優(yōu)點,成為各大軟件公司開發(fā)Java Web應用程序的首選技術。熟練掌握SSM框架的應用型人才需求量也在逐年增加。由于SSH比SSM產(chǎn)生時間早,有的院校還在采用SSH作為課程的內(nèi)容,嚴重地影響了應用型軟件人才的培養(yǎng)。因此,“Java EE應用開發(fā)框架”課程內(nèi)容采用SSM替代SSH框架勢在必行。
Java Web應用程序總體上分為表示層、業(yè)務層(Service)、數(shù)據(jù)層(DAO)三層架構。表示層又分為視圖層(view)、控制層(Controller)、模型層(model),實現(xiàn)了MVC編程模式。SSM框架使用Spring MVC充當Controller負責請求的轉發(fā)和視圖管理,Spring實現(xiàn)業(yè)務對象管理,MyBatis作為數(shù)據(jù)對象的持久化引擎。SSM實現(xiàn)了除視圖層以外的Java Web應用程序的核心內(nèi)容[1]。
SSM三個框架內(nèi)容較多,概念難于理解,而且有的功能也有多種實現(xiàn)技術,對于初學者難度較大。在課程內(nèi)容設計中應以實現(xiàn)三層架構為主線,優(yōu)化出常用的、簡潔的實現(xiàn)技術作為重點來組織教學,學生學習起來才能有的放矢,能夠更好地掌握SSM框架的核心技術。
Spring框架主要包含控制反轉(IoC)和面向切面(AOP)編程及事務管理三部分內(nèi)容[2]??刂品崔D即依賴注入,是由spring容器集中管理模型層對象,不再由使用者創(chuàng)建,降低了使用資源雙方的耦合度。AOP編程技術作為面向對象編程技術的補充,實現(xiàn)了橫向編程方法,在訪問資源前后插入進行統(tǒng)一處理的獨立功能,每個資源不再寫這些功能代碼,避免了重復編寫,也提高了程序的可維護性。事務管理保證數(shù)據(jù)的完整性,使數(shù)據(jù)正確有效。三種技術是實際開發(fā)中經(jīng)常用到的,實現(xiàn)起來也相對復雜,應給予重視并認真掌握。Spring框架重點掌握ApplicationContext容器注入Bean,Bean的構造器實例化,基于注解(Annotation)法的Bean的裝配;基于注解的聲明式AspectJ 的AOP編程;聲明式事務管理。這些內(nèi)容能充分實現(xiàn)上述三大技術,其它一些不重要及不常用的技術可以不講或略講。具體教學中,以“用戶信息對象”設計注入Bean的案例教學,切面編程可以攔截用戶請求資源進行登錄驗證。事務管理可以人為設置異常,檢驗事務的實現(xiàn),也可以結合后續(xù)數(shù)據(jù)庫操作的轉賬功能來進行。注入Bean功能用一個完整的實際代碼為例講授,學生更容易掌握其中的4個知識點。
MyBatis是軟件公司常用的ORM數(shù)據(jù)層框架,實現(xiàn)Java對象模型與關系模型的映射訪問。框架性能優(yōu)異、高度靈活、易于優(yōu)化與維護,MyBatis 消除大量的JDBC代碼和參數(shù)設置,易于學習使用??蚣艿膶崿F(xiàn)內(nèi)容包括配置文件、接口設計、映射文件及訪問接口使用,內(nèi)容緊湊,但熟練掌握映射文件的各種標簽、三種聯(lián)系映射及動態(tài)SQL有一定難度。MyBatis框架要了解ORM原理及常用的實現(xiàn)方法,了解Hibernate和MyBatis的區(qū)別,掌握接口數(shù)據(jù)訪問技術及映射文件格式。課程內(nèi)容上,重點掌握MyBatis配置文件中各個元素的作用,MyBatis映射文件中常用元素的使用,動態(tài)SQL中主要元素的使用,MyBatis的關聯(lián)映射,三種聯(lián)系1對1、1對多、多對多的映射實現(xiàn)方法,使用SqlSessionFactory、SqlSession訪問數(shù)據(jù)接口方法,數(shù)據(jù)庫的SQL語句簡略講解即可。課程以“教學管理”案例展開,案例包含課程中所需要的邏輯,學生也很熟悉,可以抽取學生、班級、課程、選課四個表來進行。講授中,要以映射文件為核心內(nèi)容,對數(shù)據(jù)庫的接口訪問編程方法應重點講述。
Spring MVC框架是Spring總框架的一部分,實現(xiàn)了Web MVC設計模式。將表示層進行職責解耦,分離成控制器、模型對象、視圖,它充當了控制器角色。Spring MVC框架重點掌握Spring MVC框架工作流程,Controller注解類型、@RequestMapping注解的使用、@RequestMapping注解的屬性,掌握綁定包裝POJO、自定義數(shù)據(jù)綁定、綁定數(shù)組、綁定集合,攔截器的使用,掌握文件上傳、下載案例的編寫,對于一些配置文件了解即可。課程教學過程中,將Spring、MyBatis框架案例相結合,進一步完成登錄過程模塊。Spring MVC框架作為Controller層,完成數(shù)據(jù)接收轉發(fā)及重定向顯示結果功能。另外,加入文件上傳下載及攔截器功能,通過案例把課程內(nèi)容串聯(lián)起來。由于數(shù)據(jù)類型綁定容易出錯,學生要認真細致掌握。我校軟件工程專業(yè)選用的教材是《Java EE企業(yè)級應用開發(fā)教程》,教程內(nèi)容包含了SSM框架[3]。
三個框架一般都是聯(lián)合應用,實現(xiàn)Java Web應用程序架構。這部分應當重點掌握三層架構的設計思想實現(xiàn)方法,全面理解持久化類、DAO層(包括接口和映射文件)、Service層(包括接口和實現(xiàn)類)、Controller層、頁面的實現(xiàn)方法,掌握基于MapperScannerConfigurer整合的配置文件編寫及jar包文件的整合,其余內(nèi)容可忽略。SSM框整合較容易,在三個框架內(nèi)容基礎上[4],填入整合jar包,并對相應的配置文件進行修改即可完成。由于SSM三大框架配置內(nèi)容繁瑣,所以最好采用簡潔的注釋方法實現(xiàn),向后續(xù)的Spring Boot框架過渡。
課程安排3學分,48學時,課堂教學24學時,實驗24學時,加大了實驗學時比重。實驗基本采用模塊及案例方式,學時分配如表1。另外,為了提高學生綜合應用三大框架實踐能力,安排了“Java EE框架應用開發(fā)”實訓環(huán)節(jié),實訓采用項目驅動方式進行。課程內(nèi)容及所涉及的前導課較多,綜合實踐性較強。實訓要求學生完成一個基于SSM框架的小型應用程序開發(fā),以便他們深入理解POJO、DAO、Service、Controller及網(wǎng)頁視圖之間的關系,更好地掌握SSM綜合應用技術。
Java EE 應用程序框架是綜合實踐性最強的一門課程,教學上采用了多元教學、模塊化教學、案例引導、項目驅動等方式。
表1 課程內(nèi)容學時分配
授課內(nèi)容 講課學時 上機學時實驗方式 1. Spring的基本應用及Java Bean22 案例 2. Spring AOP22 模塊 3. Spring的數(shù)據(jù)庫開發(fā)及事務管理22 驗證 4. MyBatis初步及核心配置22 驗證 5. 動態(tài)SQL22 案例 6. MyBatis的關聯(lián)映射22 案例 7. MyBatis與Spring的整合22 案例 8. Spring MVC入門及核心類和注解22 驗證 9. 數(shù)據(jù)綁定22 案例 10. 攔截器22 案例 11. 文件上傳和下載22 模塊 12. SSM框架整合22 案例 合計48學時2424
1. 多元教學。線下線上相結合,除了課堂教學外,在線上教學平臺中,開設了相關MOOC[5],學生可以在MOOC中反復學習,利用平臺留了46道大作業(yè)及27道討論題,可以利用平臺答題討論交流。另外,還建立了學習群,老師可以通過微信、QQ和學生互動、答疑,通過多種手段,及時解決學生在學習中遇到的問題。
2. 模塊化教學。根據(jù)課程包含Spring + SpringMVC + MyBaitis三大框架,相互可以獨立,也可相互整合的特點,先對三大框架按三個模塊分別進行教授學習。學生熟練掌握各框架的原理及使用后,再對Spring + MyBaitis整合,進而整合SpringMVC。在實驗課程的設計中,知識點不要分得過細,把一個完整的知識模塊作為一個實驗,效果會更好,如:Bean的注入、AOP編程等,學時數(shù)可以兩個單元,并且連續(xù)進行。
3. 案例引導。課程中設計了一些經(jīng)典案例,這些案例可以讓學生們模仿來寫,也可以由學生自行完成一個相對獨立的功能模塊,避免了只是做一些驗證知識點的實踐性不強的實驗,更有利于提高實踐能力。例如用戶登錄、表單數(shù)據(jù)驗證、網(wǎng)上支付、購物車、網(wǎng)站統(tǒng)計等小型模塊來鍛煉學生。有一定基礎后,也可以嘗試一些有難度的模塊,如通過表格處理表數(shù)據(jù)等,進一步提升編程能力。
4. 項目驅動。在課程中,選擇實踐能力相對較強的學生形成團隊,讓其參與教師的橫向科研項目,以驅動教學實驗的推進。選取項目中簡單相對獨立的部分,讓學生作為實例去模仿實現(xiàn),積累項
目開發(fā)經(jīng)驗,例如:選取橫向科研中的醫(yī)院管理、物流管理、公文審批管理等內(nèi)容給學生。另外,在軟件競賽中鼓勵學生使用SSM框架,更有利于學生對課程內(nèi)容的掌握。
我校專升本18、19級“Java EE應用開發(fā)框架”課程采用以上設計的教學內(nèi)容及教學方法。學生通過學習,能夠深刻理解Java Web應用程序三層架構及MVC編程模式,清晰準確掌握SSM框架的系列技術,熟練進行開發(fā)環(huán)境搭建,編寫各框架的配置文件及應用程序,實踐能力得到了明顯提高,為軟件項目開發(fā)積累了經(jīng)驗,達到了課程的教學目的。
[1] 張姝. Web環(huán)境中的應用程序三層架構設計[J]. 電腦知識與技術, 2016,12(4): 109-110.
[2] 梁弼,王光瓊,鄧小清. 基于Spring框架的Web應用輕量級3S解決方案[J].西華大學學報(自然科學版),2018(3): 78-82.
[3] 黑馬程序員. Java EE企業(yè)級應用開發(fā)教程: Java EE企業(yè)級應用開發(fā)教程[M]. 北京: 人民郵電出版社, 2017: 252-257.
[4] 李小薪. 以全面、高效和可持續(xù)性為導向的Java EE課堂教學[J]. 計算機教育,2021(3): 118-122.
[5] 羅榮良. 基于多工具多平臺的Java EE架構與應用開發(fā)教學實踐[J]. 計算機教育,2021(1): 45-48.
:10.15916/j.issn1674-327x.2021.03.033
G642.0
B
1674-327X (2021)03-0120-03
2021-03-15
遼寧工業(yè)大學教學改革研究項目(201876)
翟寶峰(1966-),男(滿族),遼寧錦州人,副教授。
(責任編校:付春玲)