① java的三大框架是什麼
Java的三大框架是:
1.Structs框架是最早的Java開源框架之一.Struts是MVC設計模式的一個優秀實現.
Struts是最早的java開源框架之一,它是MVC設計模式的一個優秀實現。 Struts定義了通用的Controller(控制器),通過配置文件(通常是 Struts -config.xml)隔離Model(模型)和View(視圖),以Action的概念以對用戶請求進行了封裝,使代碼更加清晰易讀。 Struts還提供了自動將請求的數據填充到對象中以及頁面標簽等簡化編碼的工具。 Struts能夠開發大型Java Web項目。
2.Struts2以WebWork優秀的設計思想為核心,吸收了 Struts框架的部分優點,提供了一個更加整潔的MVC設計模式實現的Web 應用程序框架
Struts2以WebWork優秀的設計思想為核心,吸收了 Struts框架的部分優點,提供了一個更加整潔的MVC設計模式實現的Web 應用程序框架。 Struts2引入了幾個新的框架特性:從邏輯中分離出橫切關注點的攔截器、減少或者消除配置文件、貫穿整個框架的強大表達式語言、支持可變更和可重用的基於MVC模式的標簽API, Struts2充分利用了從其它MVC框架學到的經驗和教訓,使得 Struts2框架更加清晰靈活。
3.Hibernate是一個開放源代碼的對象關系映射框架
它對JDBC進行了非常輕量級的對象封裝,它將POJO與資料庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
② 目前java的那些框架技術用的比較多
1,SpringMVC
在中國有一種說法「生薑仍舊又辛辣」,所以雖然SpringMVC已經發布了十多年,但它仍然強大有力,並且處於領先地位,具有絕對優勢。在擁抱完整的MVC框架之後,Spring已經發展並且現在是面向Internet的應用程序的綜合Java框架,為軟體工程師提供了一個功能強大的工具包,用於Web應用程序開發和安全項目的應用程序配置。作為最受歡迎的程序員之一,Spring的完善生態系統提供了許多其他選項:RESTAPI或SOAPWeb服務,安全性(身份驗證和授權,加密)等。此外,許多大公司選擇使用SpringMVC,因此如果您在使用過程中遇到問題,將會有很多技術專家為您解答。
利弊
春天並非沒有理由爬到頂端。它之所以成為最著名的Java框架,主要是因為:
1.使用POJO簡化測試數據的注入。
2.增強模塊性,使代碼更具可讀性。
3.不同模塊之間的分離。
4.靈活的應用依賴注入(DI)。
雖然SpringMVC有很多文檔可供參考,但它的學習曲線對新手Java開發人員來說太苛刻了,而且開發人員可能會遇到這樣的情況:當他們遇到較少的引用時無法啟動。另外,雖然SpringMVC的在線信息較多,但版本會有所不同。總的來說,SpringMVC是工程師最喜歡的框架之一。
2,Hibernate
雖然Hibemate不在RebelLabs的排行榜上,但它仍然是一個值得一提的Java框架。這種映射Java框架使用連續資料庫訪問操作而不是高級對象處理來解決對象和關系不匹配的問題。每個企業應用程序都不同,因此Hibernate附帶了一個強大的功能集,可以幫助後端開發人員微調數據訪問層。這是一個高級ORM框架,允許您對Java對象(實體)執行資料庫操作。使用Hibernate Cache將數據從Java環境持久化到資料庫是一個持久的概念。
目前Java編程語言最流行的7個框架,你了解多少?
利弊
Hibernate可以通過對原始代碼進行微小更改來幫助您與任何資料庫進行通信,從而彌合對象和關系之間的差距。除了這個優勢,它還有:
1.無論是Oracle,Db2還是MySQL,Hibernate都獨立於DB。
2.緩存機制優化了類似的查詢。
3.支持N + 1或延遲載入。
盡管Hibernate有許多優點,但它不允許多次插入,不支持對JDBC的某些查詢,並且不適用於具有較少表的小規模項目。
3,Struts2
為了更詳細地解釋現代軟體工程師廣泛使用的Java框架,Qianfeng Wuhan Java Training的老師介紹了Struts2,它是ApacheStruts1的後續版本。 Struts2用於構建當代JavaEE Web應用程序。 Apache Software Foundation為開發人員提供了廣泛的工具,用於創建企業級面向Web的應用程序,優化開發過程,甚至是後期維護,包括最終的優化過程和後期維護。如果您擔心像廣播門戶這樣的高負載系統,Struts將是您的最佳選擇。
由於Struts2實現了Action類(普通的POJO對象),因此測試編寫代碼所需的工作量更少。使用框架API,耦合變得更容易,並有助於調整攔截器。
利弊
Struts2的最大特點是您不必重寫或實現Action類,IT工程師為多個操作創建重復代碼不再是一個問題,因為攔截器將處理它。
Struts的最大缺點是它不夠靈活。
目前Java編程語言最流行的7個框架,你了解多少?
瓦亞丁
Vaadin是現代開發人員在創建業務應用程序和使用GWT呈現頁面時必須選擇的流行框架之一。 Vaadin使用一種眾所周知的基於組件的方法來快速適應瀏覽器的變化,從而減輕開發人員的負擔。 Vaadin通過將更改傳達給瀏覽器來消除開發人員的負擔。豐富的UI組件,各種各樣的小部件和控制項,程序員可以隨時隨地構建一個很酷的應用程序。
利弊
在Java或HTML布局構造中,Vaadin提供了一種將數據綁定到MVC或MVP的方法。支持拖放和其他突出功能簡化了Java應用程序的單頁UI創建。
因為Vaadin需要將每個事件發送回伺服器,或者移動應用程序的UI很慢。
5. JSF
作為JavaEE的一部分,Oracle支持JavaServerFaces。雖然這不是快速Java開發的最佳框架,但很容易開始使用Oracle的大量文檔。如果你不離開JavaEE環境,JSF沒有外部依賴,但它非常強大,它有一個豐富的庫和工具(包括一個易於創建用戶界面的工具集),無論你的應用程序有多復雜,它可以支持。
利弊
如上所述,JSF是JavaEE不可或缺的一部分。因此,開發人員可以利用IDE軟體套件和業界領先供應商的高級支持。
但事情有兩面,JavaServerFaces太大,所以沒有web開發經驗或不熟練的人可能很難掌握。
6,Grails
這種特殊的Web框架被認為是一種動態工具,可以提高工程師的工作效率。它具有唯一的API實際,合理的默認值和約定的配置示例。與Java的無縫集成使其成為全球許多程序員的最佳選擇。 Grails具有許多強大的功能,例如基於Spring的依賴注入和各種插件,同時提供創建現代Web應用程序所需的一切。
目前Java編程語言最流行的7個框架,你了解多少?
利弊
Grails可以快速構建新項目,腳手架為編碼人員節省了寶貴的時間。 Grails擁有一個包含900多種易於安裝的插件的龐大庫。 Grails是一個用於全棧開發的Java框架,它的對象關系映射涵蓋了大量的功能,使其成為一個重量級的軟體。
7,GoogleWebToolkit
GWT是一個免費的Java框架,允許用戶創建和優化復雜的基於Web的應用程序。 GWT的軟體開發工具包提供了核心Java API和小部件,可以在構建之後編譯到JavaScript應用程序中。
利弊
使用GoogleWebToolkit,您可以獲得單個代碼庫(Java中的瀏覽器和伺服器端編程),從而簡化了開發和調試過程。與其他技術的簡單集成允許程序員在網頁中嵌入GWT小部件。 Widget功能也可以在GWT的幫助下自定義。
但是,GWT不適用於純HTML和後動態內容布局,因此無法滿足網頁設計師的需求。
③ java框架有哪些常用框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
④ java框架是什麼
java框架指的就是一些類和介面的集合,通過這些類和介面協調可以完成一系列的程序實現。框架又叫做開發中的半成品,框架不能提供整個WEB應用程序的所有東西,但是框架有技術實現以及輔助業務邏輯的作用。
⑤ java web主流框架有哪些 知乎
所謂的JAVAWEB三大框架,1、hibernate,2、struts2,
3、spring。
企業一般是用的是自己的框架。
你可以了解下這三個玩意,看看是如何控制前台頁面和後台之間,數據是如何交互的。
⑥ 請問在java中如何建立頁面的框架
<html> <head> <base href="<%=basePath%>"> <title>主框架界面</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <frameset rows="20%,*" frameborder="no"> <frame src="/top.jsp" name="top" noresize> <frameset cols="22%,*"> <frame src="/left.jsp" name="left" noresize> <frame src="/main.jsp" name="main" noresize"> </frameset> </frameset> <body> </body> </html> 給你解釋下這個<frame src="/samw/main/top.jsp" name="top" noresize> src=""這個就是你的JSP文件路徑了!name呢就是這個框架的名字以後你要載入頁面進入這個框架><a href="/myJSP.jsp" target="main">我要加入的JSP</a> 比如這個鏈接直接用target="name"就可以了!
採納哦
⑦ Java目前主流框架都有哪些
框架1:Spring框架
該框架排名第一,因為它具有開發復雜Web應用程序的出色能力,而且,這些應用程序因性能突出而廣受贊譽。它使Java開發人員能夠輕松地創建企業級應用程序。
Web應用程序開發人員可以證明Spring框架的能力。這就是Spring成為Java開發人員最愛的原因。下面的數據可以證明這一點。以下是開發者(選擇Java作為首選的三種編程語言之一)對Java框架的看法:
在開發人員的選擇中,Spring MVC和Spring Boot遠遠領先於其他Java技術。對於開發人員來說,這里的一大優勢是他們可以不受其他模塊約束而專注於一個模塊,因為Spring利用了控制反轉(IoC)。
這個框架的其他一些優點是一個全面的配置模型,支持傳統資料庫和現代資料庫(如NoSQL),並通過支持面向方面編程來支持內聚開發。它提供了一些模塊,如Spring MVC、Spring Core、Spring Boost、SpringTransaction等。
框架2:Hibernate框架
作為一個對象關系映射(ORM)資料庫,它改變了我們以前查看資料庫的方式。盡管它不是一個全棧框架,但它可以極其輕松地為多個資料庫轉換數據。
它支持多個資料庫的能力使它很容易擴展,無論應用程序的大小或用戶的數量如何。它速度快、功能強大、易於擴展、修改和配置。
框架3:Struts框架
該框架幫助自定義軟體開發人員創建易於維護的企業級應用程序。這個框架的USP是它的插件。它們是JAR包,這意味著它們是可移植的。
Hibernate插件和Spring插件分別可以用於對象關系映射和依賴注入。使用此Java框架開發應用程序可以減少處理時間,因為它提供了組織良好的Java、JSP和Action類。
框架4:Play
使用該框架的頂尖公司包括LinkedIn、三星、衛報、Verizon等。這只能說明它的可信度。該框架提供了速度、可伸縮性和性能。
它的用戶界面非常簡單,使移動應用程序開發人員可以快速理解它。它主要用於開發需要統一內容創建的應用程序。
框架5:Google Web Toolkit
這個框架用於客戶端開發,類似JavaScript。它是一個開源的Java框架,這意味著它是免費的。谷歌廣泛使用了這個框架,谷歌產品如AdSense、谷歌錢包、AdWords都是使用它編寫的。
藉助GWT代碼,可以輕松地開發和調試Ajax應用程序。Java開發人員更喜歡使用這個框架來編寫復雜的應用程序。書簽、跨瀏覽器可移植性、歷史記錄和管理是它的一些特性。
閱讀完分享的Java的熱門框架後,希望你能有一個更清晰的了解。了解熱門框架不是一個挑戰,但是找到適合你需求的框架是一個挑戰!
⑧ Java頁面框架有哪些
常見的JAVA框架有: WAF: 全稱:WEB APPLICATION FRAMEWORK 主要應用方面:EJB層,(WEB層也有,但是比較弱)。 主要應用技術:EJB等 出處: java.sun.com/blueprints/code/index.html 簡述:這是SUN在展示J2EE平台時所用的例子PetStore(寵物商店系統)裡面的框架。是SUN藍皮書例子程序中提出的應用框架。它實現了 MVC和其他良好的設計模式。SUN的網站上有技術資料,最好下載PetStore來研究,WEBLOGIC里自帶此系統,源碼在bea\weblogic700\samples\server\src\petstore。這是學習了解J2EE的首選框架。 免費。 Struts: 主要應用方面:WEB層。 主要應用技術:JSP,TagLib,JavaBean,XML等 出處: jakarta.apache.org/struts/index.html 簡述:這是APACHE的開源項目,目前應用很廣泛。基於MVC模式,結構很好,基於JSP。Jbuilder8里已經集成了STRUTS1.02的製作。 免費。 Turbine: 主要應用方面:WEB層。 主要應用技術:servlet等 出處: jakarta.apache.org/turbine/index.html 簡述:這是APACHE的開源項目。基於SERVLET。據說速度比較快,基於service(pluggable implementation可插拔的執行組件)的方式提供各種服務。 免費。 COCOON: 主要應用方面:WEB層。 主要應用技術:XML,XSP,servlet等 出處: cocoon.apache.org/2.0/ 簡述:這是APACHE的一個開源項目。基於XML,基於XSP(通俗地說,XSP是在XML靜態文檔中加入Java程序段後形成的動態XML文檔。)。特點是可以與多種數據源交互,包括文件系統,資料庫,LDAP,XML資源庫,網路數據源等。 免費。 ECHO: 主要應用方面:WEB層。 主要應用技術:servlet等 出處: www.nextapp.com/procts/echo/ 簡述:nextapp公司的一個開源項目。基於SERVLET。頁面可以做的很漂亮,結合echopo int,可以作出很多圖形效果(裡面用了jfreechart包)。使用SWING的思想來作網頁,把HTML當作JAVA的類來做。但是大量使用Session,頁面分幀(Frame)很多,系統資源消耗很大。 免費。 JATO: 全稱:SUN ONE Application Framework 主要應用方面:WEB層。 主要應用技術:JSP,TagLib,JavaBean等 出處: www.sun.com 簡述:這是SUN推出的一個商業性框架,是結合SUN ONE的平台推出的。 TCF: 全稱:Thin-Client Framework 主要應用方面:JAVA GUI。 主要應用技術:JAVA application等 出處: www.alphaworks.ibm.com/tech/tcf 簡述:這是IBM出的一個框架。基於MVC模式,基於JAVA Application。
⑨ java有什麼常用開源的框架
java常用開源框架如下:
1.Spring Framework 【Java開源JEE框架】
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。
2.WebWork 【Java開源Web開發框架】
WebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE Web框架。
3.Struts 【Java開源Web開發框架】
Struts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中
4.Hibernate 【Java開源持久層框架】
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合
5.Quartz 【Java開源調度框架】
Quartz是OpenSymphony開源組織在Job scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。
6.Velocity 【Java開源模板引擎】
Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。
7.IBATIS 【Java開源持久層框架】
使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 「全自動」ORM機制而言,ibatis 以SQL開發的工作量和資料庫移植性上的讓步,為系統 設計提供了更大的自由空間。作為「全自動」ORM 實現的一種有益補充,ibatis 的出現顯 得別具意義。
⑩ java中最常的框架有哪幾種
Structs hibernate spring Struts
Struts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。
Struts框架可分為以下四個主要部分,其中三個就和MVC模式緊密相關:
1、模型(Model),本質上來說在Struts中Model是一個Action類(這個會在後面詳細討論),開發者通過其實現商業邏輯,同時用戶請求通過控制器(Controller)向Action的轉發過程是基於由struts-config.xml文件描述的配置信息的。
2、視圖(View),View是由與控制器Servlet配合工作的一整套JSP定製標簽庫構成,利用她們我們可以快速建立應用系統的界面。
3、控制器(Controller),本質上是一個Servlet,將客戶端請求轉發到相應的Action類。
4、一堆用來做XML文件解析的工具包,Struts是用XML來描述如何自動產生一些JavaBean的屬性的,此外Struts還利用XML來描述在國際化應用中的用戶提示信息的(這樣一來就實現了應用系統的多語言支持)。
Spring
Spring是輕量級的J2EE應用程序框架。
Spring的核心是個輕量級容器(container),實現了IoC(Inversion of Control)模式的容器,Spring的目標是實現一個全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間彼此可以獨立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。
Spring不會特別去提出一些子框架來與現有的OpenSource框架競爭,除非它覺得所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因為它覺得現有的MVC方案有很多可以改進的地方,但它不強迫您使用它提供的方案,您可以選用您所希望的框架來取代其子框架,例如您仍可以在Spring中整合您的Struts框架 。
Spring的核心概念是IoC,IoC的抽象概念是「依賴關系的轉移」,像是「高層模組不應該依賴低層模組,而是模組都必須依賴於抽象」是 IoC的一種表現,「實現必須依賴抽象,而不是抽象依賴實現」也是IoC的一種表現,「應用程序不應依賴於容器,而是容器服務於應用程序」也是IoC的一種表現。
Spring的架構性的好處
Spring能有效地組織你的中間層對象,無論你是否選擇使用了EJB。如果你僅僅使用了Struts或其他的包含了J2EE特有APIs的framework,你會發現Spring關注了遺留下的問題。
.Spring能消除在許多工程上對Singleton的過多使用。根據我的經驗,這是一個主要的問題,它減少了系統的可測試性和面向對象特性。
Spring 能消除使用各種各樣格式的屬性定製文件的需要,在整個應用和工程中,可通過一種一致的方法來進行配置。曾經感到迷惑,一個特定類要查找迷幻般的屬性關鍵字或系統屬性,為此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。Spring能通過介面而不是類促進好的編程習慣,減少編程代價到幾乎為零。
.Spring被設計為讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。
.使用Spring構建的應用程序易於單元測試。
.Spring能使EJB的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用POJOs或local EJBs來實現業務介面,卻不會影響調用代碼。
.Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適於許多web應用。例如,Spring能使用AOP提供聲明性事務而不通過使用EJB容器,如果你僅僅需要與單個的資料庫打交道,甚至不需要JTA實現。
.Spring為數據存取提供了一致的框架,不論是使用JDBC或O/R mapping產品(如Hibernate)。
Spring確實使你能通過最簡單可行的解決辦法解決你的問題。這些特性是有很大價值的。
Spring能做什麼?
Spring提供許多功能,在此我將快速地依次展示其各個主要方面。
任務描述:
首先,讓我們明確Spring范圍。盡管Spring覆蓋了許多方面,但我們已經有清楚的概念,它什麼應該涉及和什麼不應該涉及。
Spring的主要目的是使J2EE易用和促進好編程習慣。
Spring 不重新開發已有的東西。因此,在Spring中你將發現沒有日誌記錄的包,沒有連接池,沒有分布事務調度。這些均有開源項目提供(例如 Commons Logging 用來做所有的日誌輸出,或Commons DBCP用來作數據連接池),或由你的應用程序伺服器提供。因為同樣的的原因,我們沒有提供O/R mapping層,對此,已有有好的解決辦法如Hibernate和JDO。
Spring的目標是使已存在的技術更加易用。例如,盡管我們沒有底層事務協調處理,但我們提供了一個抽象層覆蓋了JTA或任何其他的事務策略。
Spring沒有直接和其他的開源項目競爭,除非我們感到我們能提供新的一些東西。例如,象許多開發人員,我們從來沒有為Struts高興過,並且感到在MVC web framework中還有改進的餘地。在某些領域,例如輕量級的 IoC容器和AOP框架,Spring有直接的競爭,但是在這些領域還沒有已經較為流行的解決方案。(Spring在這些區域是開路先鋒。)
Spring也得益於內在的一致性。
所有的開發者都在唱同樣的的贊歌,基礎想法依然是Expert One-on-One J2EE設計與開發的那些。
並且我們已經能夠使用一些主要的概念,例如倒置控制,來處理多個領域。
Spring在應用伺服器之間是可移植的。
當然保證可移植性總是一次挑戰,但是我們避免任何特定平台或非標准化,並且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的應用伺服器上的用戶。
Spring的核心即是個IoC/DI的容器,它可以幫程序設計人員完成組件之間的依賴關系注入,使得組件之間的依賴達到最小,進而提高組件的重用性,Spring是個低侵入性(invasive)的框架,Spring中的組件並不會意識到它正置身於Spring中,這使得組件可以輕易的從框架中脫離,而幾乎不用任何的修改,反過來說,組件也可以簡單的方式加入至框架中,使得組件甚至框架的整合變得容易。
Spring最為人重視的另一方面是支持AOP(Aspect-Oriented Programming),然而AOP框架只是Spring支持的一個子框架,說Spring框架是AOP框架並不是一件適當的描述,人們對於新奇的 AOP關注映射至Spring上,使得人們對於Spring的關注集中在它的AOP框架上,雖然有所誤解,但也突顯了Spring的另一個令人關注的特色。
Spring也提供MVC Web框架的解決方案,但您也可以將自己所熟悉的MVC Web框架與Spring解合,像是Struts、Webwork等等,都可以與Spring整合而成為進用於自己的解決方案。Spring也提供其它方面的整合,像是持久層的整合如JDBC、O/R Mapping工具(Hibernate、iBATIS)、事務處理等等,Spring作了對多方面整合的努力,故說Spring是個全方位的應用程序框架。
AJAX
AJAX
全稱「Asynchronous JavaScript and XML」(非同步JavaScript和XML),是指一種創建互動式網頁應用的網頁開發技術。它有機地包含了以下幾種技術:基於web標准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)進行動態顯示及交互; 使用 XML 和 XSLT 進行數據交換及相關操作; 使用 XMLHttpRequest 進行非同步數據查詢、檢索;使用 JavaScript 將所有的東西綁定在一起。
類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。
ajax優勢
傳統的web應用允許用戶填寫表單(form),當提交表單時就向web伺服器發送一個請求。伺服器接收並處理傳來的表單,然後返回一個新的網頁。這個做法浪費了許多帶寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的。由於每次應用的交互都需要向伺服器發送請求,應用的響應時間就依賴於伺服器的響應時間。這導致了用戶界面的響應比本地應用慢得多。與此不同,AJAX應用可以僅向伺服器發送並取回必需的數據,它使用SOAP或其它一些基於XML的web service介面,並在客戶端採用JavaScript處理來自伺服器的響應。因為在伺服器和瀏覽器之間交換的數據大量減少,結果我們就能看到響應更快的應用。同時很多的處理工作可以在發出請求的客戶端機器上完成,所以Web伺服器的處理時間也減少了。
Hibernate
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使得Java程序員可以使用對象編程思維來操縱資料庫。Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化。它還可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用
Hibernate不會對您造成妨礙,也不會強迫您修改對象的行為方式。它們不需要實現任何不可思議的介面以便能夠持續存在。惟一需要做的就是創建一份XML「映射文檔」,告訴Hibernate您希望能夠保存在資料庫中的類,以及它們如何關聯到該資料庫中的表和列,然後就可以要求它以對象的形式獲取數據,或者把對象保存為數據。與其他解決方案相比,它幾乎已經很完美了。
運行時,Hibernate讀取映射文檔,然後動態構建Java類,以便管理資料庫與Java之間的轉換。在Hibernate中有一個簡單而直觀的API,用於對資料庫所表示的對象執行查詢。要修改這些對象,(一般情況下)只需在程序中與它們進行交互,然後告訴Hibernate保存修改即可。類似地,創建新對象也很簡單;只需以常規方式創建它們,然後告訴Hibernate有關它們的信息,這樣就能在資料庫中保存它們。
Hibernate API學習起來很簡單,而且它與程序流的交互相當自然。在適當的位置調用它,就可以達成目的。它帶來了很多自動化和代碼節省方面的好處,所以花一點時間學習它是值得的。而且還可以獲得另一個好處,即代碼不用關心要使用的資料庫種類(否則的話甚至必須知道)。我所在的公司就曾有過在開發過程後期被迫更換資料庫廠商的經歷。這會造成巨大的災難,但是藉助於Hibernate,只需要簡單地修改Hibernate配置文件即可。
這里的討論假定您已經通過創建Hibernate映射文檔,建立了一個關系資料庫,並且擁有要映射的Java類。有一個Hibernate「工具集」可在編譯時使用,以支持不同的工作流。例如,如果您已經擁有Java類和映射文檔,Hibernate可以為您創建(或更新)必需的資料庫表。或者,僅僅從映射文檔開始,Hibernate也能夠生成數據類。或者,它可以反向設計您的資料庫和類,從而擬定映射文檔。還有一些用於Eclipse的alpha 插件,它們可以在IDE中提供智能的編輯支持以及對這些工具的圖形訪問。
如果您使用的是Hibernate 2環境,這些工具鮮有提供,但是存在可用的第三方工具。
使用Hibernate的場合
既然Hibernate看起來如此靈活好用,為什麼還要使用其他的工具呢?下面有一些場景,可以幫助您做出判斷(或許通過提供一些比較和上下文,可以有助於鑒別非常適用Hibernate的場合)。
如果應用對於數據存儲的需要十分簡單——例如,您只想管理一組用戶優先選擇——您根本不需要資料庫,更不用說一個優秀的對象-關系映射系統了(即使它也如Hibernate這般易於使用)!從Java 1.4開始,有一個標準的Java Preferences API可以很好地發揮這個作用。(在ONJava文章中可以找到有關Preferences API的更多信息。)
對於熟悉使用關系資料庫和了解如何執行完美的SQL查詢與企業資料庫交互的人來說,Hibernate似乎有些礙手礙腳,這就像帶有動力和自動排擋的快艇車會使注重性能的賽車駕駛員不耐煩一樣。如果您屬於這種人,如果您所在的項目團隊擁有一個強大的DBA,或者有一些存儲過程要處理,您可能想研究一下iBATIS。Hibernate的創建者本身就把iBATIS當作是另一種有趣的選擇。我對它很有興趣,因為我們曾為一個電子商務站點開發了一個類似的系統(其功能更為強大),而且從那時到現在,我們已經在其他環境中使用過它,盡管在發現Hibernate之後,在新項目中我們通常更喜歡使用Hibernate。您可以認為,以SQL為中心的解決方案(比如iBATIS)是「反向的」對象/關系映射工具,而Hibernate是一個更為傳統的ORM。
當然,還有其他的外部原因會導致採用另外的方法。比如,在一個企業環境中,必須使用成熟的EJB架構(或者其他的一些非普通對象映射系統)。可以為提供自己的數據存儲工具的平台量身定做代碼,比如Mac OS X's Core Data。使用的可能是像XML DTD這樣的存儲規范,而它根本不涉及關系資料庫。