基于Maven的輕量級Java軟件開(kāi)發(fā)研究論文
本文通過(guò)對多種Java軟件架構進(jìn)行比較分析,提出了一種輕量級軟件開(kāi)發(fā)的方法,該方法使用Maven進(jìn)行項目管理,采用Spring MVC和Hibernate框架搭建分層的軟件架構,解決了軟件開(kāi)發(fā)復雜,效率低,管理混亂的問(wèn)題。
Java語(yǔ)言自從推出以來(lái)一直是最流行的編程語(yǔ)言,社會(huì )上越來(lái)越多的開(kāi)發(fā)人員利用Java技術(shù)進(jìn)行軟件開(kāi)發(fā),也出現了越來(lái)越多的Java框架,為了提高軟件開(kāi)發(fā)的質(zhì)量和效率,降低軟件復雜度,需要選擇合理的框架搭建軟件架構,并且需要相應的技術(shù)進(jìn)行項目的構建和管理,本文研究適合中小企業(yè)軟件開(kāi)發(fā)的輕量級的Java軟件架構,并采用流行的項目管理工具M(jìn)aven管理軟件開(kāi)發(fā),以降低軟件開(kāi)發(fā)的難度。
1、多種軟件架構的比較
1)早期的Java企業(yè)級開(kāi)發(fā)采用框架重量級EJB(Enterprise JavaBean)。EJB是定義了一個(gè)用于開(kāi)發(fā)基于組件的企業(yè)多重應用程序的Java EE標準。因為EJB容器默認為應用提供了EJB規范中的所用功能,以它為架構的應用程序需要消耗大量資源,具有侵入性,所以是一種重量級框架。
比如,EJB啟動(dòng)的時(shí)候,需要消耗大量的資源,內存,CPU等。其次還表現在EJB巨大而復雜的規格說(shuō)明以及代碼規范,F在的EJB3.0增加了許多新的規范,例如元數據支持,實(shí)體Bean模型訪(fǎng)問(wèn)Bean上下文的新方法和運行時(shí)環(huán)境等,但是EJB仍然具有過(guò)于復雜的特性。
基于重量級框架EJB的軟件架構沒(méi)有很好的靈活性來(lái)應對需求的變化,缺乏實(shí)用性,所以隨著(zhù)SOA和其它力量的興起,軟件開(kāi)發(fā)也越來(lái)越多地選擇輕量級的部署平臺。
2)常見(jiàn)的輕量級組合框架采用Struts2、Spring和Hibernate設計。Struts2是一個(gè)主流的基于MVC模式的Web開(kāi)發(fā)框架,該框架包括三部分:核心的控制器組件、業(yè)務(wù)控制器和用戶(hù)實(shí)現的業(yè)務(wù)邏輯組件。
其中,Struts2框架提供了核心控制器,用戶(hù)實(shí)現業(yè)務(wù)控制層和業(yè)務(wù)邏輯層,具體實(shí)現時(shí)業(yè)務(wù)邏輯層采用面向接口編程;Hibernate是一個(gè)基于Java的對象關(guān)系映射(ORM)開(kāi)源框架,對底層的JDBC進(jìn)行了非常輕量級的封裝,開(kāi)發(fā)人員通過(guò)它可以使用面向對象的編程思想操作數據庫。
使用JDBC的應用都可以用Hibernate替代,并且Hibernate可以取代重量級EJB在Java EE架構中的應用,完成數據持久化操作;Spring是為了降低企業(yè)應用開(kāi)發(fā)的復雜性而創(chuàng )建的輕量級Java開(kāi)源框架。
Spring框架的采用分層架構,分層架構的優(yōu)點(diǎn)是使用者根據需求選擇使用其中的組件,并且可以提供集成的.框架。Spring通過(guò)核心的控制反轉(IoC)和面向切面(AOP)功能,使用簡(jiǎn)單的JavaBean來(lái)完成以前由重量級EJB完成的應用。
Spring的應用不僅限于服務(wù)器端,任何的Java應用都可以選擇需要的Spring功能模塊。所以,Spring是一個(gè)分層的一站式輕量級開(kāi)源框架。
Struts2、Hibernate、Spring組合的輕量級架構如圖1所示。
3)目前流行應用Spring MVC完成Web開(kāi)發(fā)。Spring的輕量級和低入侵性使得其應用越來(lái)越多,由此發(fā)展了Web模塊,融合在Spring Web Flow里面,即Spring MVC。
Spring MVC是提供了構建 Web 應用程序的全功能MVC模塊。該功能和Spring其他功能一樣是一種可插入的MVC架構[1]。Spring MVC輕量級框架側重于減小開(kāi)發(fā)的復雜度,比較適用于開(kāi)發(fā)中小型企業(yè)應用。所以在使用Spring進(jìn)行Web開(kāi)發(fā)時(shí),越來(lái)越多的使用SpringMVC框架取代集成其他MVC開(kāi)發(fā)框架(如Struts2)。
2、輕量級軟件架構的搭建
基于了Spring和Hibernate輕量級的特點(diǎn),采用Spring MVC和hibernate整合完成分層的輕量級軟件架構,應用Hibernate的對象持久化功能進(jìn)行域模型層和DAO(Data Access Object)層的實(shí)現,應用Spring MVC定義控制層(Controller)和視圖層,應用Spring的對象管理功能管理DAO層、服務(wù)層(Service)和控制層的對象,降低軟件組件間耦合性。
在進(jìn)行Spring、Spring MVC和Hibernate輕量級架構搭建時(shí),為使應用耦合度低不依賴(lài)其他容器,采用基于簡(jiǎn)單Java對象的方法,這可以提高軟件的開(kāi)發(fā)調試效率。具體搭建該輕量級軟件架構需要注意以下幾點(diǎn)。
1)導入Spring和Hibernate及其他功能(例如數據庫驅動(dòng))的支持Jar包。
2)Spring MVC的核心是DispatcherServlet,,這個(gè)Servlet充當Spring MVC的前端控制器,必須在web.xml中進(jìn)行配置。
3)必須定義基于這個(gè)servlet名字的XML文件,DispatcherServlet在加載時(shí)會(huì )從該文件中加載Spring上下文。
4)定義相應功能的處理類(lèi)和返回視圖。
采用的輕量級框架Spring和Hibernate都是基于Java的開(kāi)源框架,在開(kāi)源社區中為這些框架提供了成熟的API和許多快速構建工具以及可供參考的開(kāi)源代碼,這更利于軟件的快速開(kāi)發(fā)。
3、Maven的應用
在進(jìn)行輕量級的軟件架構開(kāi)發(fā)項目的過(guò)程中,還必須有良好的項目管理工具。Maven是一款通過(guò)簡(jiǎn)短的描述信息來(lái)管理項目的構建,報告和文檔的軟件項目管理工具,它的核心是基于項目對象模型(POM)。Maven包含了一個(gè)項目對象模型、一組標準集合、一個(gè)項目生命周期、一個(gè)依賴(lài)管理系統和用來(lái)運行定義在生命周期階段中插件目標的邏輯。
應用Maven,可以用一個(gè)明確定義的項目對象模型來(lái)描述項目,然后Maven可以應用橫切的邏輯,這些邏輯來(lái)自一組共享的(或者自定義的)插件。Maven可以讓開(kāi)發(fā)人員快速地構建一個(gè)項目,有效地解決包管理和項目發(fā)布問(wèn)題,并且可以與持續集成進(jìn)行無(wú)縫對接。對于大型的系統,采用Maven 作為項目管理工具,可以有效地進(jìn)行分工協(xié)作。
Maven的這種應用無(wú)侵入性,本身就是輕量級軟件架構的需要。
將Maven應用于基于Spring MVC的輕量級軟件架構,可以有效的提高項目開(kāi)發(fā)進(jìn)度,降低項目復雜度,主要方法為以下幾種。
1)為項目定義pom.xml文件,該文件中定義了項目對象模型,是Maven腳本的基礎,這個(gè)模型定義了項目的各種屬性,腳本都是基于該模型工作;此外在對象模型中對所依賴(lài)的包有明確的定義,如定義使用哪個(gè)版本的包。
2)Maven是基于中央倉庫的編譯,即把編譯所需要的資源放在一個(gè)中央倉庫里,如jar,tld,pom,等。當編譯的時(shí)候,Maven會(huì )自動(dòng)在倉庫中找到相應的包,如果本地倉庫沒(méi)有,則從設定好的遠程倉庫中下載到本地。這一切都是自動(dòng)的,并且用maven編譯的項目在發(fā)布的時(shí)候只需要發(fā)布源碼,小得很,使得項目更加輕量級。
3)Maven還為項目提供了大量的附加腳本降低項目開(kāi)發(fā)的復雜性,例如生成網(wǎng)站、生成文檔、源代碼參考手冊等,利用Maven只需運行相應腳本。
4、結論
良好的軟件架構和項目管理工具是軟件開(kāi)發(fā)成功的基礎,不僅能夠降低開(kāi)發(fā)難度,節約開(kāi)發(fā)成本,還能夠極大的提高軟件的可擴展性和可維護性;赟pring、Spring MVC和Hibernate搭建的軟件架構以控制器、模型和視圖(MVC)為基礎,對底層JDBC進(jìn)行對象封裝,提供業(yè)務(wù)模型基礎,并應用分層和按需集成方式開(kāi)發(fā)web應用;Maven服務(wù)于基于Java平臺的項目構建、依賴(lài)管理和項目信息管理,來(lái)降低系統各個(gè)模塊之間的耦合度,使得代碼的復用性大大提高,可以實(shí)現項目的并行開(kāi)發(fā),進(jìn)一步提高系統開(kāi)發(fā)的可擴展性及穩定性,降低軟件開(kāi)發(fā)難度。
Spring MVC、Hibernate框架以及Maven工具發(fā)展迅速,公司項目采用它們的比例在持續增長(cháng),在軟件開(kāi)發(fā)時(shí)可以借鑒。
【基于Maven的輕量級Java軟件開(kāi)發(fā)研究論文】相關(guān)文章:
基于A(yíng)ndroid平臺軟件開(kāi)發(fā)技術(shù)研究論文11-07
基于CMMI的軟件開(kāi)發(fā)模型應用研究論文11-04
基于軟件開(kāi)發(fā)下外觀(guān)模式的改進(jìn)研究論文11-04
云平臺下基于包裝設計的軟件開(kāi)發(fā)研究論文10-29
基于網(wǎng)絡(luò )包裝技術(shù)下軟件開(kāi)發(fā)的遠程監控系統研究論文10-31
基于Java EE的Web系統中數據庫設計技術(shù)研究論文11-06
基于課堂的教師行動(dòng)研究的論文10-21