- 相關(guān)推薦
Java三大框架技術(shù)起源
作為java新手,你可否知道,這些Java三大框架Struts、Hibernate和Spring是怎么來(lái)的呢?下面一起來(lái)了解三大框架的起源吧!
傳統的Java Web應用程序是通過(guò)JSP+Servlet+Javabean來(lái)實(shí)現的。這樣的模式可以將程序幾個(gè)分為基層,也就是最基本的程序分層,它們中有負責前臺展示的JSP,也有負責邏輯控制的Servlet,還有負責程序分裝的Javabean?此仆昝赖慕Y構仍然存問(wèn)題,比如說(shuō)在JSP頁(yè)面中,需要通過(guò)符合的使用來(lái)嵌入大量的Java代碼,導致頁(yè)面結構的混亂,Servlet和Javabean負責大量的跳轉和運算的工作,它們耦合緊密,導致程序復用率低等問(wèn)題。
Struts
Struts框架出現就是為了解決這些問(wèn)題,它是一個(gè)完美的MVC實(shí)現,Struts框架有一個(gè)中央控制類(lèi)( Servlet),在針對不同業(yè)務(wù)時(shí),我們可以通過(guò)一個(gè)Action類(lèi)來(lái)負責頁(yè)面跳轉和后臺的邏輯運算,一個(gè)或者幾個(gè)JSP頁(yè)面來(lái)負責數據的輸入、輸出以及顯示,通過(guò)一個(gè) Form類(lèi)來(lái)負責傳遞Action和JSP中間的數據。JSP中也可以使用Struts框架來(lái)提供的一組標簽,就像我們使用HTML的標簽一樣簡(jiǎn)單,但是它可以完成更為復雜的程序邏輯。從此在JSP頁(yè)面中再也不用出現一行包圍的Java代碼了。
但是在Struts的Action里放入大量的運算邏輯也會(huì )使得 Action類(lèi)的復用度低和導致的邏輯混亂,所以在開(kāi)發(fā)者習慣把整個(gè)的Web應用程序分為三層,分別是:Struts來(lái)負責顯示層,由它來(lái)調用業(yè)務(wù)層完成運算邏輯,業(yè)務(wù)層再來(lái)調用持久層完成數據庫的讀寫(xiě)。
使用JDBC連接來(lái)讀寫(xiě)數據庫,最常見(jiàn)的方法就是打開(kāi)數據庫的連接、使用復雜的SQL語(yǔ)句來(lái)讀寫(xiě)、關(guān)閉連接,最后獲取的數據還得需要轉換或封裝后再往外傳,這是一個(gè)非常煩瑣的過(guò)程。
Hibernate
這時(shí)候 Hibernate框架出現了,你可以通過(guò)創(chuàng )建一系列的持久化類(lèi),每個(gè)類(lèi)的屬性我們都可以簡(jiǎn)單的將其看做是一張數據庫便的屬性并與之一一對應,同樣也可以實(shí)現關(guān)系數據庫的各種表件關(guān)聯(lián)的對應。在我們需要進(jìn)行相關(guān)操作時(shí),就可以不用再關(guān)注數據庫表。無(wú)需去一行一行的查詢(xún)數據庫,只要持久化類(lèi)就可以輕松的完成增刪改查的功能。這也是使我們的軟件開(kāi)發(fā)可以真正面向對象,而不是面向混亂的代碼。Hibernate使用比JDBC方式減少了80%的編程量。
現在我們已經(jīng)有三個(gè)層了,但層與層直接是怎樣調用的呢?如果顯示層的Struts需要調用一個(gè)業(yè)務(wù)類(lèi),就得先new出一個(gè)業(yè)務(wù)類(lèi)出來(lái),然后再使用;業(yè)務(wù)層需要調用持久層的類(lèi),也得先new出一個(gè)持久層類(lèi)再用。這種new方式的相互調用就是軟件開(kāi)發(fā)中糟糕的設計體體現。簡(jiǎn)而言之,就是調用者依賴(lài)被調用者,它們之間形成了強耦合,如果我想在其他地方復用某個(gè)類(lèi),則這個(gè)類(lèi)依賴(lài)的其他類(lèi)也需要包含。程序就變得很混亂,每個(gè)類(lèi)互相依賴(lài)互相調用,復用度極低。如果一個(gè)類(lèi)做了修改,則依賴(lài)它的很多類(lèi)都會(huì )受到牽連。 為此,出現Spring框架。
Spring
Spring的作用就是完全解耦類(lèi)之間的依賴(lài)關(guān)系,一個(gè)類(lèi)如果要依賴(lài)什么,那就是一個(gè)接口。至于如何實(shí)現這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現了這個(gè)接口的類(lèi),就可以輕松的通過(guò)xml配置文件把實(shí)現類(lèi)注射到調用接口的那個(gè)類(lèi)里。所有類(lèi)之間的這種依賴(lài)關(guān)系就完全通過(guò)配置文件的方式替代了。所以 Spring框架最核心的就是所謂的依賴(lài)注射和控制反轉。
現在的結構是,Struts負責顯示層,Hibernate負責持久層,Spring負責中間的業(yè)務(wù)層,這個(gè)結構是目前國內最流行的Java Web應用程序架構了。另外,由于Spring使用的依賴(lài)注射以及AOP(面向方面編程),所以它的這種內部模式非常優(yōu)秀,以至于Spring自己也實(shí)現了一個(gè)使用依賴(lài)注射的MVC框架,叫做Spring MVC,同時(shí)為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務(wù)層,使用更加方便和強大。
Struts框架是2000年就開(kāi)始起步了,到目前已經(jīng)發(fā)展了5年,技術(shù)相當成熟,目前全球Java開(kāi)發(fā)中Struts框架是顯示層技術(shù)中當之無(wú)愧的王者。它擁有大量的用戶(hù)群和很好的開(kāi)發(fā)團隊。這也是國內大部分Java軟件公司對新進(jìn)員工的基本要求。
其他
Java這個(gè)名詞似乎注定和開(kāi)源緊密聯(lián)系在一起了,在Java界,每天都有大量的開(kāi)源技術(shù)出現,由于是開(kāi)放源代碼的,技術(shù)中存在的問(wèn)題和不足很快就會(huì )被人發(fā)現,開(kāi)源軟件提供者會(huì )很快的修正或擴展這些技術(shù),因此版本更新很快,幾個(gè)星期或者幾天就有一個(gè)新版本出來(lái)。
當我們在技術(shù)線(xiàn)路中選擇了Java,也就選擇了你必須持續學(xué)習,經(jīng)常關(guān)注最新的技術(shù),了解它們,看是否適合你的需要,然后學(xué)習使用它們。
你應該掌握的Java技術(shù)
Java基礎:
◆Java原理和使用,包括基本的語(yǔ)言、語(yǔ)法知識和API
◆JSP+Servlet,Java Web開(kāi)發(fā)的基礎
服務(wù)器:
◆WebLogic的原理、使用和配置
◆Tomcat:輕量的 JavaWeb容器,和WebLogic功能類(lèi)似,使用簡(jiǎn)單、方便、免費、開(kāi)源,但不支持EJB
◆JBoss:類(lèi)似于Tomcat,功能更強,支持EJB
這三種應用服務(wù)器至少掌握其中的一種是很必要的。
框架:
◆Struts、Spring、Hibernate
◆Tapestry:這是一個(gè)新的MVC框架,使用組件式開(kāi)發(fā),是顯示層技術(shù)的發(fā)展趨勢。
◆Flex和Laszlo:新的顯示層技術(shù),支持富客戶(hù)端應用,是目前的較前沿的顯示技術(shù)。
◆EJB :EJB的全稱(chēng)是Enterprise JavaBeans,是Java中的商業(yè)應用組件技術(shù)。
Java Web開(kāi)發(fā)周邊技術(shù):
◆HTML、Javascript、CSS、XML、XSLT,這些是開(kāi)發(fā)中經(jīng)常使用到的,應該熟練掌握。
開(kāi)發(fā)工具:
◆Dreamweaver、Eclipse或Jbuilder、PL/SQL
數據庫:
◆Oracle必須會(huì )用、 SQLServer掌握、MySQL可以在自己學(xué)習時(shí)使用。DB2那種東西就不要學(xué)了,國內太少使用了。
軟件工程:
◆可以理解UML設計和使用UML進(jìn)行簡(jiǎn)單設計。
【Java三大框架技術(shù)起源】相關(guān)文章:
Java程序員集合框架面試題及答案10-25
JAVA認證開(kāi)源技術(shù):關(guān)于Java的對象equals方法06-26
乒乓高手必須具備的技術(shù)框架09-28
JAVA和WAP移動(dòng)學(xué)習技術(shù)07-28
框架式玻璃幕墻施工技術(shù)方法09-02
象棋的起源08-10
網(wǎng)球的起源09-30
高爾夫的起源09-16
Java與Java web的區別08-10