發表於2024-12-23
暢銷書全新升級,第1版廣獲好評,摘取Spring類圖書銷量桂冠,掀起Java類圖書銷售熱潮
係統解讀Spring全新版本源代碼,從宏觀和微觀兩個角度深入剖析Spring架構設計與實現原理
資深Java專傢親自執筆,Java開發者社區和Spring開發者社區聯袂推薦
更多精彩好書推薦,請點擊以下圖片查看:
《Spring技術內幕:深入解析Spring架構與設計原理(第2版)》是國內一本係統分析Spring源代碼的著作,也是Spring領域的問鼎之作,由業界擁有10餘年開發經驗的專業Java專傢親自執筆,Java開發者社區和Spring開發者社區聯袂推薦。本書第1版不僅在內容上獲得瞭讀者的廣泛好評,而且在銷量上也摘取瞭同類書的桂冠,曾經一度掀起Java類圖書的銷售熱潮。第2版不僅繼承瞭第1版在內容組織和寫作方式上的優點,而且還根據廣大讀者的反饋改進瞭若乾細節上的不足。更為重要的是,結閤Spring的全新版本對過時的內容進行瞭更新,並增加瞭大量新內容,使本書更趨近於完美。
《Spring技術內幕:深入解析Spring架構與設計原理(第2版)》從源代碼的角度對Spring的內核和各個主要功能模塊的架構、設計和實現原理進行瞭深入剖析。你不僅能從本書中參透Spring框架的齣色架構和設計思想,還能從Spring優雅的實現源碼中一窺Java語言的精髓。本書在開篇之前對Spring的設計理念和整體架構進行瞭全麵的介紹,能讓讀者從宏觀上厘清Spring各個功能模塊之間的關係;一部分詳細分析瞭Spring的核心:IoC容器和AOP的實現,能幫助讀者瞭解Spring的運行機製;第二部分深入闡述瞭各種基於IoC容器和AOP的Java EE組件在Spring中的實現原理;第三部分講述瞭ACEGI安全框架、DM模塊以及Flex模塊等基於Spring的典型應用的設計與實現。
無論你是Java程序員、Spring開發者,還是平颱開發人員、係統架構師,抑或是對開源軟件源代碼著迷的代碼狂人,都能從本書中受益。
前言
第1章 Spring的設計理念和整體架構
1.1 Spring的各個子項目
1.2 Spring的設計目標
1.3 Spring的整體架構
1.4 Spring的應用場景
1.5 小結
第一部分 Spring核心實現篇
第2章 Spring Framework的核心:IoC容器的實現
2.1 Spring IoC容器概述
2.1.1 IoC容器和依賴反轉模式
2.1.2 Spring IoC的應用場景
2.2 IoC容器係列的設計與實現:BeanFactory和ApplicationContext
2.2.1 Spring的IoC容器係列
2.2.2 Spring IoC容器的設計
2.3 IC容器的初始化過程
2.3.1 BeanDefinition的Resource定位
2.3.2 BeanDefinition的載入和解析
2.3.3 BeanDefinition在IoC容器中的注冊
2.4 IoC容器的依賴注入
2.5 容器其他相關特性的設計與實現
2.5.1 ApplicationContext和Bean的初始化及銷毀
2.5.2 lazy-init屬性和預實例化
2.5.3 FactoryBean的實現
2.5.4 BeanPostProcessor的實現
2.5.5 autowiring(自動依賴裝配)的實現
2.5.6 Bean的依賴檢查
2.5.7 Bean對IoC容器的感知
2.6 小結
第3章 Spring AOP的實現
3.1 Spring AOP概述
3.1.1 AOP概念迴顧
3.1.2 Advice通知
3.1.3 Pointcut切點
3.1.4 Advisor通知器
3.2 Spring AOP的設計與實現
3.2.1 JVM的動態代理特性
3.2.2 Spring AOP的設計分析
3.2.3 Spring AOP的應用場景
3.3 建立AopProxy代理對象
3.3.1 設計原理
3.3.2 配置ProxyFactoryBean
3.3.3 ProxyFactoryBean生成AopProxy代理對象
3.3.4 JDK生成AopProxy代理對象
3.3.5 CGLIB生成AopProxy代理對象
3.4 Spring AOP攔截器調用的實現
3.4.1 設計原理
3.4.2 JdkDynamicAopProxy的invoke攔截
3.4.3 Cglib2AopProxy的intercept攔截
3.4.4 目標對象方法的調用
3.4.5 AOP攔截器鏈的調用
3.4.6 配置通知器
3.4.7 Advice通知的實現
3.4.8 ProxyFactory實現AOP
3.5 Spring AOP的高級特性
3.6 小結
第二部分 Spring組件實現篇
第4章 Spring MVC與Web環境
4.1 Spring MVC概述
4.2 Web環境中的Spring MVC
4.3 上下文在Web容器中的啓動
4.3.1 IoC容器啓動的基本過程
4.3.2 Web容器中的上下文設計
4.3.3 ContextLoader的設計與實現
4.4 Spring MVC的設計與實現
4.4.1 Spring MVC的應用場景
4.4.2 Spring MVC設計概覽
4.4.3 DispatcherServlet的啓動和初始化
4.4.4 MVC處理HTTP分發請求
4.5 Spring MVC視圖的呈現
4.5.1 DispatcherServlet視圖呈現的設計
4.5.2 JSP視圖的實現
4.5.3 ExcelView的實現
4.5.4 PDF視圖的實現
4.6 小結
第5章 數據庫操作組件的實現
5.1 Spring JDBC的設計與實現
5.1.1 應用場景
5.1.2 設計概要
5.2 Spring JDBC中模闆類的設計與實現
5.2.1 設計原理
5.2.2 JdbcTemplate的基本使用
5.2.3 JdbcTemplate的execute實現
5.2.4 JdbcTemplate的query實現
5.2.5 使用數據庫Connection
5.3 Spring JDBC中RDBMS操作對象的實現
5.3.1 SqlQuery的實現
5.3.2 SqlUpdate的實現
5.3.3 SqlFunction
5.4 Spring ORM的設計與實現
5.4.1 應用場景
5.4.2 設計概要
5.5 Spring驅動Hibernate的設計與實現
5.5.1 設計原理
5.5.2 Hibernate的SessionFactory
5.5.3 HibernateTemplate的實現
5.5.4 Session的管理
5.6 Spring驅動iBatis的設計與實現
5.6.1 設計原理
5.6.2 創建SqlMapClient
5.6.3 SqlMapClientTemplate的實現
5.7 小結
第6章 Spring事務處理的實現
6.1 Spring與事務處理
6.2 Spring事務處理的設計概覽
6.3 Spring事務處理的應用場景
6.4 Spring聲明式事務處理
6.4.1 設計原理與基本過程
6.4.2 實現分析
6.5 Spring事務處理的設計與實現
6.5.1 Spring事務處理的編程式使用
6.5.2 事務的創建
6.5.3 事務的掛起
6.5.4 事務的提交
6.5.5 事務的迴滾
6.6 Spring事務處理器的設計與實現
6.6.1 Spring事務處理的應用場景
6.6.2 DataSourceTransactionManager的實現
6.6.3 HibernateTransactionManager的實現
6.7 小結
第7章 Spring遠端調用的實現
7.1 Spring遠端調用的應用場景
7.2 Spring遠端調用的設計概覽
7.3 Spring遠端調用的實現
7.3.1 Spring HTTP調用器的實現
7.3.2 Spring Hession
7.3.3 Spring RMI的實現
7.4 小結
第三部分 Spring應用實現篇
第8章 安全框架ACEGI的設計與實現
8.1 Spring ACEGI安全框架概述
8.1.1 概述
8.1.2 設計原理與基本實現過程
8.1.3 ACEGI的Bean配置
8.2 配置Spring ACEGI
8.3 ACEGI的Web過濾器實現
8.4 ACEGI驗證器的實現
8.4.1 AuthenticationManager的authenticate
8.4.2 DaoAuthenticationProvider的實現
8.4.3 讀取數據庫用戶信息
8.4.4 完成用戶信息的對比驗證
8.5 ACEGI授權器的實現
8.5.1 與Web環境的接口FilterSecurityInterceptor
8.5.2 授權器的實現
8.5.3 投票器的實現
8.6 小結
第9章 Spring DM模塊的設計與實現
9.1 Spring DM模塊的應用場景
9.2 Spring DM的應用過程
9.3 Spring DM設計與實現
9.4 小結
第10章 Spring Flex的設計與實現
10.1 Spring Flex模塊的應用場景
10.2 Spring Flex的應用過程
10.3 Spring Flex的設計與實現
10.4 小結
附錄A Spring項目的源代碼環境
附錄B 構建Spring項目的發布包
附錄C 使用Spring IDE
附錄D Spring Pet Clinic應用實例
為什麼要寫這本書
本書探討瞭Spring框架的設計原理、架構和運行機製。作為在Java領域最為成功的開源軟件之一,Spring在Java EE開發中,使用者眾多。本書以Spring的源代碼為依托,結閤Spring的設計思路,從內部實現的角度,對Spring的實現進行瞭翔實的分析,希望能夠通過這種分析,使讀者在開發者的層麵掌握Spring,為開發Spring應用提供更紮實的框架基礎。
“忽如一夜春風來”,伴隨著2002年Rod Johnson的《Expert One-on-One J2EE Design and Development》一書的齣版而正式發布的Spring框架(也就是當年的interface21),經過這幾年的發展,已經逐漸成熟起來。“吹麵不寒楊柳風”,Spring帶來的嶄新開發理念,也早已伴隨著它的廣泛應用而“飛入尋常百姓傢”。
與此同時,隨著Spring的不斷成熟和完善,開源社區的成長,以及Spring開發團隊的不懈努力,以Spring為核心的一係列開源軟件産品也越來越豐富,現已發展成為一個包括軟件構建、開發、運行、部署整個軟件生命周期的産品族群。Spring不但改變瞭Java EE應用的開發和服務模式,嚮純商業軟件發齣瞭有力的挑戰,同時也成為Java軟件生態鏈中不可或缺的重要組成部分。它所具備的那種平易近人、內涵豐富的品質,對我們這些軟件愛好者來說,實在是一個不可多得的學習範本。
簡化Java企業應用的開發是Spring框架的目標。其輕量級的開發思想,為開發者提供便利的齣發點(for the developer, to the developer and by the developer —這是Rod Johnson在一次演講中的開場白),以及具有活力的開源社區,所有的這些,都為使用Java開發企業應用和Web應用帶來瞭福音,這些都是Spring吸引我們的地方。
在Java企業應用中,與我們熟悉的企業應用服務器一樣,Spring也希望能夠集成管理企業應用資源,以及為應用開發提供平颱支持。在這一點上,Spring與UNIX和Windows等傳統意義上的操作係統,在計算係統中起到的作用是類似的。不同點在於,傳統操作係統關心的是存儲、計算、通信、外圍設備等這些物理資源的管理,並在管理這些資源的基礎上,為應用程序提供統一的平颱和服務接口;而Spring關心的是,如何為開發者集中管理在Java企業應用和Web應用中涉及的數據持久化、事務處理、消息中間件、分布式計算等抽象資源,並在此基礎上,為應用提供瞭一個基於POJO的開發環境。盡管二者麵嚮的資源、管理的對象、支持的應用,以及使用的場景不同,但它們在整個計算係統中的定位,卻有著可以類比和相互參考之處。所以,筆者根據對傳統操作係統的認識方法,粗淺地把Spring框架劃分為核心、組件和應用三個基本的層次,通過這三個層次中一些主要特性來剖析Spring的工作原理和運作機製。同時,也用這樣的認識邏輯來組織本書中要闡述的內容。
在這樣的層次劃分中,首先看到的是對IoC容器和AOP這兩個核心模塊的工作原理的分析,它們都是Spring平颱實現的核心部分;同時,它們也是Spring的其他模塊實現的基礎。雖然,對大多數開發者而言,都隻是在此基礎上進行相關的配置和外部功能的使用,但是,深入理解這兩個核心模塊的工作原理和運作機製,對於我們更好地應用Spring進行開發是至關重要的。因為,從Spring要簡化Java EE開發的齣發點來看,它是通過對POJO開發提供支持來實現的。具體地說,Spring通過為應用基於POJO的開發模式提供支持,從而使應用開發和復雜的Java EE服務實現解耦,並由此通過提高單元測試覆蓋率(也就是應用係統的可測試性)來有效地提高整個Spring應用的開發質量。在這樣的開發場景下,需要把為POJO提供支持的各種Java EE服務支持抽象到Spring應用平颱中去,並將其封裝起來。具體來說,這一係列的封裝工作,在Spring及其應用實現中,離不開IoC容器和AOP這兩個核心模塊的支持,它們在很大程度上體現瞭Spring作為應用開發平颱的核心價值。它們的實現是Rod Johnson在他的另外一本著作《Expert One-on-One J2EE Development without EJB》中所提到“Without EJB設計思想”的具體體現,同時,也深刻地體現瞭Spring背後的設計理念。
其次,在IoC容器和AOP這兩個核心模塊的支持下,Spring為瞭簡化Java EE的開發,為應用開發提供瞭許多現成的用戶態的係統組件,比如事務處理、Web MVC、JDBC、O/R映射、遠端調用等,通過這些係統組件,為企業應用服務的實現提供驅動支持。這些由Spring或其生態係統(其本身、子項目或者社區)提供的,類似於驅動模塊般的係統組件是開發應用時經常會用到的Java EE服務抽象。通過使用Spring提供的這些類似於驅動組件的中間産品,通過這一層Java EE服務的抽象,從而讓用戶可以通過使用簡單的開發接口或應用模闆,不但能夠很方便地使用各種Java EE服務,還可以靈活地選取提供這些服務的各種不同的具體實現方案。讓應用可以在各種第三方開源軟件或者商業産品中自由選擇,充分體現瞭Spring作為應用平颱的開放性。
Spring作為一個開源項目,它本身就是一個開放的生態係統。對於和Spring相關的一些項目,可以把它們看做在某個領域的用戶應用,因為它們是和Spring實現緊密相關的,或者它們本身就作為Spring框架的應用案例,體現瞭許多使用Spring的技巧。這些內容都是我們開發應用時的理想參考,並且會隨著技術的發展而不斷豐富,比如Spring DM、Spring FLEX、ACEGI安全性框架,以及Pet Clinic應用實例等。一方麵,可以把這些實現作為應用的一個基本方案加以裁剪,以滿足特定領域的需求;另一方麵,通過剖析這些應用,可以為應用開發提供很好的參考和藉鑒,提高應用開發的效率。
從更深層次的技術層麵上來看,因為Spring是一個基於Java語言的應用平颱,如果我們能夠對Spring的運行環境Java計算模型(比如JVM的實現原理)有一些瞭解,將會加深我們對Spring實現原理的理解。反射機製、代理類、字節碼技術等這些JVM特性,都是在Spring實現中會涉及的一些Java計算環境的底層技術。一般的應用開發人員可能不會直接從事與JVM底層實現相關的工作,但是,這些計算環境的底層知識對深入理解Spring是不可缺少的。
說瞭這麼多,很多讀者可能已經有些迫不
Spring技術內幕:深入解析Spring架構與設計原理(第2版) 下載 mobi epub pdf txt 電子書 格式
Spring技術內幕:深入解析Spring架構與設計原理(第2版) 下載 mobi pdf epub txt 電子書 格式 2024
Spring技術內幕:深入解析Spring架構與設計原理(第2版) 下載 mobi epub pdf 電子書買的書到的很快!需要的快來買吧!需要的來下單吧!對學習很有幫助!
評分京東物流快速,價廉物美太棒瞭
評分內容纍贅,排版很密不好閱讀
評分書不錯,適閤想學習原理的同學
評分不錯 對麵試基本知識很有幫助哈哈 點贊
評分內容還可以,速度挺快
評分趁活動買瞭好多書,又可以好好學習瞭,學習是進步的階梯
評分好書,沒事就看看,講的是很不錯的
評分最喜歡在京東買書瞭,全是正品價格優惠,多買多減,多多益善??????????
Spring技術內幕:深入解析Spring架構與設計原理(第2版) mobi epub pdf txt 電子書 格式下載 2024