Spring中文API完整版,還不錯,你值得擁有!
即使擁有良好的工具和優秀技術,應用軟件開發也是困難重重。應用開發往往牽扯到方方麵麵,每件事情都難以控製,而且,開發周期也很難把握(除非它的確是一個重量級的複雜應用,倒也有情可原)。Spring提供了一種輕量級的解決方案,用於建立“快裝式企業應用”。在此基礎上,Spring還提供了包括聲明式事務管理,RMI或Web Services遠程訪問業務邏輯,以及可以多種方法進行的持久化數據庫地解決方案。另外,Spring還有一個全功能的 MVC框架,並能透明的把 AOP 集成到你的軟件中去。
你可以把Spring當作一個潛在的一站式企業應用。或者,把Spring看作一個標準開發組件,根據自己的需要,隻取用它的部分組件使用而無需涉及其他。例如,你可以利用控製反轉容器在前台的展現層使用Struts,還可以隻使用 Hibernate集成編碼 或是 JDBC抽象層 去處理數據存儲。Spring被設計成(並將繼續保持)無侵入性的方式,意味著應用幾乎不需要對框架進行依賴(或根據實際使用的範圍,將依賴做到最小)。
本文檔是一份對Spring特性的參考指南,並且仍在增進中
在我們繼續之前,有些許感謝的話要說:為了生成Hibernate參考指南,Chris Bauer(Hibernate 項目組成員)準備和調整了DocBook-XSL軟件,同時也讓我們生成了該文檔。同樣需要感謝Russell Healy,對於某些問題,他提供了廣泛而有價值的建議。
Java應用(從applets的小範圍到全套n層服務端企業應用)是一種典型的依賴型應用,它就是由一些互相適當地協作的對象構成的。因此,我們說這些對象間存在依賴關係。
Java語言和java平台在架構應用與建立應用方麵,提供著豐富的功能。從非常基礎的基本數據類型和Class(即定義新類)組成的程序塊,到建立具有豐富的特性的應用服務器和web框架都有著很多的方法。一方麵,可以通過抽象的顯著特性讓基礎的程序塊組成在一起成為一個連貫的整體。這樣,構建一個應用(或者多個應用)的工作就可以交給架構師或者開發人員去做。因此,我們就可以清晰的知道哪些業務需要哪些Classes和對象組成,哪些設計模式可以應用在哪些業務上麵。 例如:Factory、Abstract Factory、Builder、Decorator 和 Service Locator 這些模式(列舉的隻是少數)在軟件開發行業被普遍認可和肯定(或許這就是為什麼這些模式被定型的原因)。 這固然是件好事,不過這些模式隻是一個有名字的,有說明的,知道最好用在什麼地方的,解決應用中什麼問題的最佳實踐而已。 在本章節的最後,用“... 說明 ...”給出了模式說明。 通常,模式書籍與wikis通常都列出了你可以獲得的最佳實踐,不過,希望你思考之後,在你自己的應用中 實現自己的模式。
Spring的IoC控件主要專注於如何利用classes、對象和服務去組成一個企業級應用,通過規範的方式,將各種不同的控件整合成一個完整的應用。Spring中使用了很多被實踐證明的最佳實踐和正規的設計模式,並且進行了編碼實現。如果你是一個,構架師或者開發人員完全可以取出它們集成到你自己的應用之中。這對於那些使用了Spring Framework的組織和機構來說,在spring基礎上實現應用不僅可以構建優秀的,可維護的應用並對Spring的設計進行驗證,確實是一件好事情。
Spring框架包含許多特性,並被很好地組織在下圖所示的七個模塊中。本節將依次介紹每個模塊。
Core 封裝包是框架的最基礎部分,提供IoC和依賴注入特性。這裏的基礎概念是BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的需要,並真正地允許你從程序邏輯中分離出依賴關係和配置。
構建於Core封裝包基礎上的 Context封裝包,提供了一種框架式的對象訪問方法,有些象JNDI注冊器。Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明創建,比如說通過Servlet容器。
DAO 提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。 並且,JDBC 封裝包還提供了一種比編程性更好的聲明性事務管理方法,不僅僅是實現了特定接口,而且對所有的POJOs(plain old Java objects)都適用。
ORM 封裝包提供了常用的“對象/關係”映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進行“對象/關係”映射,如前邊提到的簡單聲明性事務管理。
Spring的 AOP 封裝包提供了符合 AOP Alliance規範的麵向方麵的編程(aspect-oriented programming)實現,讓你可以定義,例如方法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。而且,利用source-level的元數據功能,還可以將各種行為信息合並到你的代碼中,這有點象.Net的attribute的概念。
Spring中的 Web 包提供了基礎的針對Web開發的集成特性,例如多方文件上傳,利用Servlet listeners進行IoC容器初始化和針對Web的application context。當與WebWork或Struts一起使用Spring時,這個包使Spring可與其他框架結合。
Spring中的 MVC 封裝包提供了Web應用的Model-View-Controller(MVC)實現。Spring的MVC框架並不是僅僅提供一種傳統的實現,它提供了一種 清晰的 分離模型,在領域模型代碼和web form之間。並且,還可以借助Spring框架的其他特性。
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
1.76G / 09-22
1.92G / 04-17
116.2M / 04-10
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06