基於Maven的輕量級Java軟件開發研究論文
本文透過對多種Java軟件架構進行比較分析,提出了一種輕量級軟件開發的方法,該方法使用Maven進行項目管理,採用Spring MVC和Hibernate框架搭建分層的軟件架構,解決了軟件開發複雜,效率低,管理混亂的問題。
Java語言自從推出以來一直是最流行的編程語言,社會上越來越多的開發人員利用Java技術進行軟件開發,也出現了越來越多的Java框架,爲了提高軟件開發的質量和效率,降低軟件複雜度,需要選擇合理的框架搭建軟件架構,並且需要相應的技術進行項目的構建和管理,本文研究適合中小企業軟件開發的輕量級的Java軟件架構,並採用流行的項目管理工具Maven管理軟件開發,以降低軟件開發的難度。
1、多種軟件架構的比較
1)早期的Java企業級開發採用框架重量級EJB(Enterprise JavaBean)。EJB是定義了一個用於開發基於組件的企業多重應用程序的Java EE標準。因爲EJB容器默認爲應用提供了EJB規範中的所用功能,以它爲架構的應用程序需要消耗大量資源,具有侵入性,所以是一種重量級框架。
比如,EJB啓動的時候,需要消耗大量的資源,內存,CPU等。其次還表現在EJB巨大而複雜的規格說明以及代碼規範。現在的EJB3.0增加了許多新的規範,例如元數據支援,實體Bean模型訪問Bean上下文的新方法和執行時環境等,但是EJB仍然具有過於複雜的特性。
基於重量級框架EJB的軟件架構沒有很好的靈活性來應對需求的變化,缺乏實用性,所以隨着SOA和其它力量的興起,軟件開發也越來越多地選擇輕量級的部署平臺。
2)常見的輕量級組合框架採用Struts2、Spring和Hibernate設計。Struts2是一個主流的基於MVC模式的Web開發框架,該框架包括三部分:核心的控制器組件、業務控制器和用戶實現的業務邏輯組件。
其中,Struts2框架提供了核心控制器,用戶實現業務控制層和業務邏輯層,具體實現時業務邏輯層採用面向接口編程;Hibernate是一個基於Java的對象關係映射(ORM)開源框架,對底層的JDBC進行了非常輕量級的封裝,開發人員透過它可以使用面向對象的編程思想操作數據庫。
使用JDBC的應用都可以用Hibernate替代,並且Hibernate可以取代重量級EJB在Java EE架構中的應用,完成數據持久化操作;Spring是爲了降低企業應用開發的複雜性而創建的輕量級Java開源框架。
Spring框架的採用分層架構,分層架構的優點是使用者根據需求選擇使用其中的組件,並且可以提供集成的框架。Spring透過核心的控制反轉(IoC)和麪向切面(AOP)功能,使用簡單的JavaBean來完成以前由重量級EJB完成的應用。
Spring的應用不僅限於服務器端,任何的Java應用都可以選擇需要的Spring功能模組。所以,Spring是一個分層的一站式輕量級開源框架。
Struts2、Hibernate、Spring組合的輕量級架構如圖1所示。
3)目前流行應用Spring MVC完成Web開發。Spring的輕量級和低入侵性使得其應用越來越多,由此發展了Web模組,融合在Spring Web Flow裏面,即Spring MVC。
Spring MVC是提供了構建 Web 應用程序的全功能MVC模組。該功能和Spring其他功能一樣是一種可插入的MVC架構[1]。Spring MVC輕量級框架側重於減小開發的複雜度,比較適用於開發中小型企業應用。所以在使用Spring進行Web開發時,越來越多的使用SpringMVC框架取代集成其他MVC開發框架(如Struts2)。
2、輕量級軟件架構的搭建
基於了Spring和Hibernate輕量級的特點,採用Spring MVC和hibernate整合完成分層的輕量級軟件架構,應用Hibernate的對象持久化功能進行域模型層和DAO(Data Access Object)層的實現,應用Spring MVC定義控制層(Controller)和視圖層,應用Spring的對象管理功能管理DAO層、服務層(Service)和控制層的對象,降低軟件組件間耦合性。
在進行Spring、Spring MVC和Hibernate輕量級架構搭建時,爲使應用耦合度低不依賴其他容器,採用基於簡單Java對象的方法,這可以提高軟件的開發調試效率。具體搭建該輕量級軟件架構需要注意以下幾點。
1)匯入Spring和Hibernate及其他功能(例如數據庫驅動)的支援Jar包。
2)Spring MVC的核心是DispatcherServlet,,這個Servlet充當Spring MVC的前端控制器,必須在中進行配置。
3)必須定義基於這個servlet名字的XML檔案,DispatcherServlet在加載時會從該檔案中加載Spring上下文。
4)定義相應功能的處理類和返回視圖。
採用的輕量級框架Spring和Hibernate都是基於Java的'開源框架,在開源社區中爲這些框架提供了成熟的API和許多快速構建工具以及可供參考的開原始碼,這更利於軟件的快速開發。
3、Maven的應用
在進行輕量級的軟件架構開發項目的過程中,還必須有良好的項目管理工具。Maven是一款透過簡短的描述資訊來管理項目的構建,報告和文檔的軟件項目管理工具,它的核心是基於項目對象模型(POM)。Maven包含了一個項目對象模型、一組標準集合、一個項目生命週期、一個依賴管理系統和用來執行定義在生命週期階段中插件目標的邏輯。
應用Maven,可以用一個明確定義的項目對象模型來描述項目,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自訂的)插件。Maven可以讓開發人員快速地構建一個項目,有效地解決包管理和項目發佈問題,並且可以與持續集成進行無縫對接。對於大型的系統,採用Maven 作爲項目管理工具,可以有效地進行分工協作。
Maven的這種應用無侵入性,本身就是輕量級軟件架構的需要。
將Maven應用於基於Spring MVC的輕量級軟件架構,可以有效的提高項目開發進度,降低項目複雜度,主要方法爲以下幾種。
1)爲項目定義檔案,該檔案中定義了項目對象模型,是Maven腳本的基礎,這個模型定義了項目的各種屬性,腳本都是基於該模型工作;此外在對象模型中對所依賴的包有明確的定義,如定義使用哪個版本的包。
2)Maven是基於中央倉庫的編譯,即把編譯所需要的資源放在一箇中央倉庫裏,如jar,tld,pom,等。當編譯的時候,Maven會自動在倉庫中找到相應的包,如果本地倉庫沒有,則從設定好的遠程倉庫中下載到本地。這一切都是自動的,並且用maven編譯的項目在發佈的時候只需要發佈源碼,小得很,使得項目更加輕量級。
3)Maven還爲項目提供了大量的附加腳本降低項目開發的複雜性,例如生成網站、生成文檔、原始碼參考手冊等,利用Maven只需執行相應腳本。
4、結論
良好的軟件架構和項目管理工具是軟件開發成功的基礎,不僅能夠降低開發難度,節約開發成本,還能夠極大的提高軟件的可擴展性和可維護性。基於Spring、Spring MVC和Hibernate搭建的軟件架構以控制器、模型和視圖(MVC)爲基礎,對底層JDBC進行對象封裝,提供業務模型基礎,並應用分層和按需集成方式開發web應用;Maven服務於基於Java平臺的項目構建、依賴管理和項目資訊管理,來降低系統各個模組之間的耦合度,使得代碼的複用性大大提高,可以實現項目的並行開發,進一步提高系統開發的可擴展性及穩定性,降低軟件開發難度。
Spring MVC、Hibernate框架以及Maven工具發展迅速,公司項目採用它們的比例在持續增長,在軟件開發時可以借鑑。
-
遼寧廣電網絡發展及革新論文
加強廣電網絡雙向改造、升級是基礎性工作,NGB(下一代廣播電視網絡)的建設,是網絡技術發展、建網的目標。要堅定不移地全面、高質量推進有線電視網絡數字化和雙向化升級改造,提高業務承載和支撐能力,只有先實現廣電網絡的雙向化,才能向NGB網邁進。所以,廣電總局明確提出...
-
創新思維在平面設計含義論文
一、創新思維與畫面的構架框架把畫面圍成了一個特別的空間,所有的設計元素都在這個框架中組織和展開,這就是畫面的構架。畫面的構架直接關係到畫面構圖的完整性和可觀賞性,因此我們決不能輕視它。常見的畫面構架主要是長方形,長與寬的配比不同會給人一種水平感或垂...
-
大壩加高工程合同管理論文
1變更項目處理中存在的難點(1)工程設計工作不夠完善。由於丹江口大壩加高工程技術複雜、施工難度大,工程設計工作不可避免地存在着不完善的地方,這就容易造成變更項目的增加。在前期設計工作中要儘量完善,工程招標檔案和合同儘量避免漏洞,以免出現大量的變更項目。...
-
漿砌石重力壩施工論文
重力壩是由砼或漿砌石修築的大體積檔水建築物,其基本剖面是直角三角形,整體是由若干壩段組成。下面是小編爲大家整理的漿砌石重力壩施工論文,歡迎閱讀。【摘要】漿砌石重力壩在我國的實用範圍相當廣泛,只要是石料豐富並且能夠修建混凝土重力壩的地方通常情況下都能...