本書是國內(nèi)一本系統(tǒng)分析Spring源代碼的著作,也是Spring領(lǐng)域的問鼎之作,由業(yè)界擁有10余年開發(fā)經(jīng)驗(yàn)的博學(xué)Java專家親自執(zhí)筆,Java開發(fā)者社區(qū)和Spring開發(fā)者社區(qū)聯(lián)袂推薦。本書第1版不僅在內(nèi)容上獲得了讀者的廣泛好評(píng),而且在銷量上也摘取了同類書的桂冠,曾經(jīng)一度掀起Java類圖書的銷售熱潮。第2版不僅繼承了第1版在內(nèi)容組織和寫作方式上的優(yōu)點(diǎn),而且還根據(jù)廣大讀者的反饋改進(jìn)了若干細(xì)節(jié)上的不足。更為重要的是,結(jié)合Spring的版本對(duì)過時(shí)的內(nèi)容進(jìn)行了更新,并增加了大量新內(nèi)容,使本書更趨近于。
本書從源代碼的角度對(duì)Spring的內(nèi)核和各個(gè)主要功能模塊的架構(gòu)、設(shè)計(jì)和實(shí)現(xiàn)原理進(jìn)行了深入剖析。你不僅能從本書中參透Spring框架的架構(gòu)和設(shè)計(jì)思想,還能從Spring優(yōu)雅的實(shí)現(xiàn)源碼中一窺Java語言的精髓。本書在開篇之前對(duì)Spring的設(shè)計(jì)理念和整體架構(gòu)進(jìn)行了的介紹,能讓讀者從宏觀上厘清Spring各個(gè)功能模塊之間的關(guān)系;及時(shí)部分詳細(xì)分析了Spring的核心:IoC容器和AOP的實(shí)現(xiàn),能幫助讀者了解Spring的運(yùn)行機(jī)制;第二部分深入闡述了各種基于IoC容器和AOP的Java EE組件在Spring中的實(shí)現(xiàn)原理;第三部分講述了ACEGI安全框架、DM模塊以及Flex模塊等基于Spring的典型應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)。
無論你是Java程序員、Spring開發(fā)者,還是平臺(tái)開發(fā)人員、系統(tǒng)架構(gòu)師,抑或是對(duì)開源軟件源代碼著迷的代碼狂人,都能從本書中受益。
暢銷書全新升級(jí),第1版廣獲好評(píng),摘取Spring類圖書銷量桂冠,掀起Java類圖書銷售熱潮
系統(tǒng)解讀Spring版本源代碼,從宏觀和微觀兩個(gè)角度深入剖析Spring架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理
博學(xué)Java專家親自執(zhí)筆,Java開發(fā)者社區(qū)和Spring開發(fā)者社區(qū)聯(lián)袂推薦
計(jì)文柯:博學(xué)軟件開發(fā)專家和項(xiàng)目經(jīng)理,擁有10余年業(yè)界經(jīng)驗(yàn),對(duì)Spring等開源軟件的應(yīng)用和實(shí)現(xiàn)原理有深入研究和獨(dú)到見解。產(chǎn)品研發(fā)和項(xiàng)目管理經(jīng)驗(yàn)豐富,曾就職于華為、摩托羅拉等知名企業(yè)和硅谷移動(dòng)互聯(lián)網(wǎng)創(chuàng)業(yè)公司,在軟件工程和項(xiàng)目管理方面積累了大量實(shí)踐。現(xiàn)與同伴一起創(chuàng)立并運(yùn)營深圳云果科技,專注于云計(jì)算解決方案的研究與實(shí)施。
前言
第1章 Spring的設(shè)計(jì)理念和整體架構(gòu)
1.1 Spring的各個(gè)子項(xiàng)目
1.2 Spring的設(shè)計(jì)目標(biāo)
1.3 Spring的整體架構(gòu)
1.4 Spring的應(yīng)用場(chǎng)景
1.5 小結(jié)
及時(shí)部分 Spring核心實(shí)現(xiàn)篇
第2章 Spring Framework的核心:IoC容器的實(shí)現(xiàn)
2.1 Spring IoC容器概述
2.1.1 IoC容器和依賴反轉(zhuǎn)模式
2.1.2 Spring IoC的應(yīng)用場(chǎng)景
2.2 IoC容器系列的設(shè)計(jì)與實(shí)現(xiàn):BeanFactory和ApplicationContext
2.2.1 Spring的IoC容器系列
2.2.2 Spring IoC容器的設(shè)計(jì)
2.3 IC容器的初始化過程
2.3.1 BeanDefinition的Resource定位
2.3.2 BeanDefinition的載入和解析
2.3.3 BeanDefinition在IoC容器中的注冊(cè)
2.4 IoC容器的依賴注入
2.5 容器其他相關(guān)特性的設(shè)計(jì)與實(shí)現(xiàn)
2.5.1 ApplicationContext和Bean的初始化及銷毀
2.5.2 lazy-init屬性和預(yù)實(shí)例化
2.5.3 FactoryBean的實(shí)現(xiàn)
2.5.4 BeanPostProcessor的實(shí)現(xiàn)
2.5.5 autowiring(自動(dòng)依賴裝配)的實(shí)現(xiàn)
2.5.6 Bean的依賴檢查
2.5.7 Bean對(duì)IoC容器的感知
2.6 小結(jié)
第3章 Spring AOP的實(shí)現(xiàn)
3.1 Spring AOP概述
3.1.1 AOP概念回顧
3.1.2 Advice通知
3.1.3 Pointcut切點(diǎn)
3.1.4 Advisor通知器
3.2 Spring AOP的設(shè)計(jì)與實(shí)現(xiàn)
3.2.1 JVM的動(dòng)態(tài)特性
3.2.2 Spring AOP的設(shè)計(jì)分析
3.2.3 Spring AOP的應(yīng)用場(chǎng)景
3.3 建立AopProxy對(duì)象
3.3.1 設(shè)計(jì)原理
3.3.2 配置ProxyFactoryBean
3.3.3 ProxyFactoryBean生成AopProxy對(duì)象
3.3.4 JDK生成AopProxy對(duì)象
3.3.5 CGLIB生成AopProxy對(duì)象
3.4 Spring AOP攔截器調(diào)用的實(shí)現(xiàn)
3.4.1 設(shè)計(jì)原理
3.4.2 JdkDynamicAopProxy的invoke攔截
3.4.3 Cglib2AopProxy的intercept攔截
3.4.4 目標(biāo)對(duì)象方法的調(diào)用
3.4.5 AOP攔截器鏈的調(diào)用
3.4.6 配置通知器
3.4.7 Advice通知的實(shí)現(xiàn)
3.4.8 ProxyFactory實(shí)現(xiàn)AOP
3.5 Spring AOP的高級(jí)特性
3.6 小結(jié)
第二部分 Spring組件實(shí)現(xiàn)篇
第4章 Spring MVC與Web環(huán)境
4.1 Spring MVC概述
4.2 Web環(huán)境中的Spring MVC
4.3 上下文在Web容器中的啟動(dòng)
4.3.1 IoC容器啟動(dòng)的基本過程
4.3.2 Web容器中的上下文設(shè)計(jì)
4.3.3 ContextLoader的設(shè)計(jì)與實(shí)現(xiàn)
4.4 Spring MVC的設(shè)計(jì)與實(shí)現(xiàn)
4.4.1 Spring MVC的應(yīng)用場(chǎng)景
4.4.2 Spring MVC設(shè)計(jì)概覽
4.4.3 DispatcherServlet的啟動(dòng)和初始化
4.4.4 MVC處理HTTP分發(fā)請(qǐng)求
4.5 Spring MVC視圖的呈現(xiàn)
4.5.1 DispatcherServlet視圖呈現(xiàn)的設(shè)計(jì)
4.5.2 JSP視圖的實(shí)現(xiàn)
4.5.3 ExcelView的實(shí)現(xiàn)
4.5.4 PDF視圖的實(shí)現(xiàn)
4.6 小結(jié)
第5章 數(shù)據(jù)庫操作組件的實(shí)現(xiàn)
5.1 Spring JDBC的設(shè)計(jì)與實(shí)現(xiàn)
5.1.1 應(yīng)用場(chǎng)景
5.1.2 設(shè)計(jì)概要
5.2 Spring JDBC中模板類的設(shè)計(jì)與實(shí)現(xiàn)
5.2.1 設(shè)計(jì)原理
5.2.2 JdbcTemplate的基本使用
5.2.3 JdbcTemplate的execute實(shí)現(xiàn)
5.2.4 JdbcTemplate的query實(shí)現(xiàn)
5.2.5 使用數(shù)據(jù)庫Connection
5.3 Spring JDBC中RDBMS操作對(duì)象的實(shí)現(xiàn)
5.3.1 SqlQuery的實(shí)現(xiàn)
5.3.2 SqlUpdate的實(shí)現(xiàn)
5.3.3 SqlFunction
5.4 Spring ORM的設(shè)計(jì)與實(shí)現(xiàn)
5.4.1 應(yīng)用場(chǎng)景
5.4.2 設(shè)計(jì)概要
5.5 Spring驅(qū)動(dòng)Hibernate的設(shè)計(jì)與實(shí)現(xiàn)
5.5.1 設(shè)計(jì)原理
5.5.2 Hibernate的SessionFactory
5.5.3 HibernateTemplate的實(shí)現(xiàn)
5.5.4 Session的管理
5.6 Spring驅(qū)動(dòng)iBatis的設(shè)計(jì)與實(shí)現(xiàn)
5.6.1 設(shè)計(jì)原理
5.6.2 創(chuàng)建SqlMapClient
5.6.3 SqlMapClientTemplate的實(shí)現(xiàn)
5.7 小結(jié)
第6章 Spring事務(wù)處理的實(shí)現(xiàn)
6.1 Spring與事務(wù)處理
6.2 Spring事務(wù)處理的設(shè)計(jì)概覽
6.3 Spring事務(wù)處理的應(yīng)用場(chǎng)景
6.4 Spring聲明式事務(wù)處理
6.4.1 設(shè)計(jì)原理與基本過程
6.4.2 實(shí)現(xiàn)分析
6.5 Spring事務(wù)處理的設(shè)計(jì)與實(shí)現(xiàn)
6.5.1 Spring事務(wù)處理的編程式使用
6.5.2 事務(wù)的創(chuàng)建
6.5.3 事務(wù)的掛起
6.5.4 事務(wù)的提交
6.5.5 事務(wù)的回滾
6.6 Spring事務(wù)處理器的設(shè)計(jì)與實(shí)現(xiàn)
6.6.1 Spring事務(wù)處理的應(yīng)用場(chǎng)景
6.6.2 DataSourceTransactionManager的實(shí)現(xiàn)
6.6.3 HibernateTransactionManager的實(shí)現(xiàn)
6.7 小結(jié)
第7章 Spring遠(yuǎn)端調(diào)用的實(shí)現(xiàn)
7.1 Spring遠(yuǎn)端調(diào)用的應(yīng)用場(chǎng)景
7.2 Spring遠(yuǎn)端調(diào)用的設(shè)計(jì)概覽
7.3 Spring遠(yuǎn)端調(diào)用的實(shí)現(xiàn)
7.3.1 Spring HTTP調(diào)用器的實(shí)現(xiàn)
7.3.2 Spring Hession/Burlap的實(shí)現(xiàn)原理
7.3.3 Spring RMI的實(shí)現(xiàn)
7.4 小結(jié)
第三部分 Spring應(yīng)用實(shí)現(xiàn)篇
第8章 安全框架ACEGI的設(shè)計(jì)與實(shí)現(xiàn)
8.1 Spring ACEGI安全框架概述
8.1.1 概述
8.1.2 設(shè)計(jì)原理與基本實(shí)現(xiàn)過程
8.1.3 ACEGI的Bean配置
8.2 配置Spring ACEGI
8.3 ACEGI的Web過濾器實(shí)現(xiàn)
8.4 ACEGI驗(yàn)證器的實(shí)現(xiàn)
8.4.1 AuthenticationManager的authenticate
8.4.2 DaoAuthenticationProvider的實(shí)現(xiàn)
8.4.3 讀取數(shù)據(jù)庫用戶信息
8.4.4 完成用戶信息的對(duì)比驗(yàn)證
8.5 ACEGI授權(quán)器的實(shí)現(xiàn)
8.5.1 與Web環(huán)境的接口FilterSecurityInterceptor
8.5.2 授權(quán)器的實(shí)現(xiàn)
8.5.3 投票器的實(shí)現(xiàn)
8.6 小結(jié)
第9章 Spring DM模塊的設(shè)計(jì)與實(shí)現(xiàn)
9.1 Spring DM模塊的應(yīng)用場(chǎng)景
9.2 Spring DM的應(yīng)用過程
9.3 Spring DM設(shè)計(jì)與實(shí)現(xiàn)
9.4 小結(jié)
第10章 Spring Flex的設(shè)計(jì)與實(shí)現(xiàn)
10.1 Spring Flex模塊的應(yīng)用場(chǎng)景
10.2 Spring Flex的應(yīng)用過程
10.3 Spring Flex的設(shè)計(jì)與實(shí)現(xiàn)
10.4 小結(jié)
附錄A Spring項(xiàng)目的源代碼環(huán)境
附錄B 構(gòu)建Spring項(xiàng)目的包
附錄C 使用Spring IDE
附錄D Spring Pet Clinic應(yīng)用實(shí)例
第1章 Spring的設(shè)計(jì)理念和整體架構(gòu)
1.1 Spring的各個(gè)子項(xiàng)目
打開Spring社區(qū)網(wǎng)站http://www.springsource.org,我們可以看到圍繞Spring核心構(gòu)建出的一個(gè)豐富的平臺(tái)生態(tài)系統(tǒng)。在這個(gè)平臺(tái)生態(tài)系統(tǒng)中,除Spring本身,還有許多值得注意的子項(xiàng)目。對(duì)Spring應(yīng)用開發(fā)者來說,了解這些子項(xiàng)目,可以更好地使用Spring,或者說,可以通過閱讀這些子項(xiàng)目的實(shí)現(xiàn)代碼,更深入地了解Spring的設(shè)計(jì)架構(gòu)和實(shí)現(xiàn)原理。這里將會(huì)對(duì)Spring的各個(gè)子項(xiàng)目進(jìn)行簡(jiǎn)要的介紹。首先,在SpringSource的官方社區(qū)網(wǎng)站中單擊Project鏈接,這時(shí)就可以看到Projects下拉列表中列出的各個(gè)子項(xiàng)目的項(xiàng)目鏈接,如圖1—1所示。
……
正如當(dāng)初所預(yù)料的,本書的第1版大獲成功,不僅獲得了良好的口碑,而且也取得了喜人的銷售成績(jī),堪稱Spring圖書領(lǐng)域的里程碑著作。在改版之前,作者收集了大量讀者對(duì)第1版的反饋,不僅改進(jìn)了第1版中存在的不足,而且還在組織結(jié)構(gòu)和寫作方式進(jìn)行了優(yōu)化。更為重要的是,第2版增加了大量新的內(nèi)容,使本書的內(nèi)容更豐富、更深入。相信第2版會(huì)比第1版更值得期待。強(qiáng)烈推薦!
——專業(yè)Spring開發(fā)者社區(qū)
本書及時(shí)版熱銷的事實(shí)有力地證明了這的確是一本值得所有Spring開發(fā)者反復(fù)研讀的書。它以源代碼分析為手段,對(duì)Spring的架構(gòu)原理和設(shè)計(jì)思想進(jìn)行了地剖析,不僅能讓我們更深入、更徹底地認(rèn)識(shí)Spring,領(lǐng)略Spring的架構(gòu)之美和設(shè)計(jì)之美,更重要的是,它將提升我們的Spring開發(fā)技能。
——Spring中文用戶組
spring非常強(qiáng)大,如果你要學(xué)項(xiàng)目經(jīng)驗(yàn),讀spring源碼是必須的,那么這本書是必須買的
對(duì)spring介紹很清楚,適合有點(diǎn)工作經(jīng)驗(yàn)的人看,許多框架都使用過,但還不熟悉,這本書介紹很清楚
書還好,需要進(jìn)一步學(xué)習(xí)spring內(nèi)部實(shí)現(xiàn)的可以參考一下。要有一定的基礎(chǔ)
早就聽過這本書,終于到手了,大致翻看了一下,很不錯(cuò)
分析的還是比較清晰全面的,語言若是能更加生動(dòng)些就更好了
內(nèi)容很深刻,適合有一定基礎(chǔ)的,入門看這會(huì)比較吃力吧。
目錄部分有重復(fù)裝訂,開始嚇了一跳,想著正版的還能這樣。還好后面的頁數(shù)沒有問題,不換了。不知道別人拿到書的是否也是這樣。
對(duì)沒有時(shí)間或不知道如何去讀Spring源碼的程序員來說,這本書是一個(gè)不錯(cuò)選擇。
書是好書,不過損傷比較明顯,最后幾十頁的邊上被撕壞了,不過著急看也沒申請(qǐng)退換
適合學(xué)習(xí)了一頓時(shí)間的spring的人看,主要是分析spring的架構(gòu),幫助我們自己搭建框架的時(shí)候提供參考的功能
大致看了看, 這本書適合呢種對(duì)spring了解, 會(huì)使用的, 想深入了解內(nèi)部實(shí)現(xiàn)或者是想了解跟多高級(jí)功能的人來閱讀。 這書要看多遍才能真正領(lǐng)悟。 不建議初學(xué)者購買。
內(nèi)容一般,如果想深入了解Spring的原理的話,最好再考慮考慮
現(xiàn)在的書印的質(zhì)量越來越差了,價(jià)格反而越來越貴了。
還沒來得及看,感覺還不錯(cuò),就是字有點(diǎn)小和密集
本書對(duì)Spring技術(shù)作了詳細(xì)的解析,讀完后可以作為高手
書不錯(cuò),送貨速度也快,在預(yù)計(jì)時(shí)間內(nèi)送到。很不錯(cuò)。
只要有基礎(chǔ)的人看這書還是不錯(cuò)的,專講Spring,缺的就是這樣的書!
一直都想學(xué)習(xí)一下Spring的內(nèi)部結(jié)構(gòu),今天終于要如愿了。
很好。講解spring知識(shí),有完全不了解ispring框架的萌妹子,讀2,3兩章
非常好的一本書,不同于一般的spring書籍只是泛泛的介紹spring的簡(jiǎn)單使用方法,而是從源代碼、項(xiàng)目設(shè)計(jì)角度全面的分析spring,此書不但可以幫讀者掌握spring框架的使用方法,還可以幫助讀者深刻的認(rèn)識(shí)spring框架中包含的軟件設(shè)計(jì)思想。好書
Spring,基本搞JavaEE的都會(huì)學(xué),那么學(xué)習(xí)其原理是必須的。知其然,還要知其所以然。
分析的很到位,詮釋了Spring框架的核心。技術(shù)書籍的好書。
400頁也就說說Spring的內(nèi)幕,而不能講清楚Spring的原理,書里面代碼非常多,入門還可以,研究的話就算了。2版的書可以看看
Spring架構(gòu)太龐大,這本書正好符合我現(xiàn)在的需要!
對(duì)Spring的架構(gòu)和源碼做了比較深入的分析,適合對(duì)Spring,設(shè)計(jì)模式有一定了解,希望能深入學(xué)習(xí)Spring內(nèi)核的人
看了一段時(shí)間才來評(píng)價(jià)的,對(duì)spring的常用組件分析的很清晰,一直想學(xué)習(xí)spring的源碼,但不知道如何入手,這本書很好的解決了這個(gè)問題。如果想學(xué)習(xí)spring源碼,這本書可以作為很好的輔助
書剛拿到,大體的翻閱了一下目錄和前2章,發(fā)現(xiàn)該書對(duì)Spring的總結(jié)和作者對(duì)Spring的認(rèn)知度有相當(dāng)?shù)母叨龋浅V档靡豢矗f的內(nèi)容也比較全面,是一本不可多得的好書!