注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)expert one-on-one J2EE Development without EJB中文版

expert one-on-one J2EE Development without EJB中文版

expert one-on-one J2EE Development without EJB中文版

定 價(jià):¥59.80

作 者: (美)詹森;赫魯;JavaEye譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: J2EE

ISBN: 9787121016844 出版時(shí)間: 2005-09-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 552 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  這本書擁有一大堆“看點(diǎn)”。譬如說,它的作者Rod Johnson擁有10年編寫Java程序的經(jīng)驗(yàn),目前是Servlet和JDO 2.0兩個(gè)JSR專家組的成員;再譬如說,書中著力介紹的Spring、Hibernate、WebWord等都是時(shí)下流行的開源框架,IoC、AOP之類都是時(shí)下流行的概念詞匯。而最大的看點(diǎn)就赫然擺在這本書的封面上:“without EJB”。我們?cè)?jīng)在無數(shù)的書籍和文章中看到,EJB是J2EE的核心技術(shù)之一;而Rod Johnson的這本書竟然宣稱,絕大多數(shù)的J2EE應(yīng)用根本不需要EJB。這種近乎挑釁的姿態(tài)令任何一個(gè)負(fù)責(zé)的J2EE架構(gòu)師很難不萌生一探究竟的念頭——不論你是打算贊同他還是打算駁斥他。 但所有這些盡皆不是本書最大的價(jià)值所在。選擇一種架構(gòu)、一種技術(shù)的依據(jù)是什么?Rod Johnson認(rèn)為,應(yīng)該是基于實(shí)踐的證報(bào)、來自歷史項(xiàng)目或親自試驗(yàn)的經(jīng)驗(yàn),而不是任何形式的偶像崇拜或者門戶之見。書中談到了企業(yè)應(yīng)用方方面面的問題和解決辦法,而這些方案無一不是這種“循證方法”的產(chǎn)物。除了把這些方案交給讀者,Rod Johnson通過這本書希望傳達(dá)的、更為重要的信息正是“循證”的工作方式——那原本就是應(yīng)該是程序員的工作方式。下面摘錄一篇評(píng)論文章:重溫經(jīng)典——J2EE without EJB 一年了,但每次我看到這本書仍然會(huì)有一種心情澎湃的感覺。這是我一年里第三次看這本書,而且這次我看到的是它的中文版。我很少看中文版的書,但這次我居然在看完了兩遍這本書的英文版后又買了本中文版的書。因?yàn)檫@本書對(duì)我太重要了,它對(duì)我的影響力甚至比Design pattern帶給我的沖擊還又大,它帶我的不僅僅是技術(shù)上的提高,還有整個(gè)思想觀念和思維方式的變化。也因?yàn)檫@本書的中文版在JavaEye上也叫囂了好久了,也因?yàn)檫@本書的幾個(gè)譯者都是值得我尊敬的人。我對(duì)potian的尊敬有時(shí)甚至達(dá)到了崇拜的地步,而robbin、dlee、gigix、moxie、曹等幾位也都是江湖上也都是出名的一流高手。乍一看這本書的名字,Expert one on one J2EE development without EJB并沒有給人帶來太沖擊。畢竟關(guān)于J2EE的書太多了,而without EJB看上去有點(diǎn)象是故意挑釁EJB的感覺。一本J2EE的書怎么可能會(huì)給人帶來信念或思維的沖擊呢?但是它做到了,它不僅使自己變成了不朽的經(jīng)典,也使Rod Johnson成為了我最近一年的新偶像。這本書的前五章是讓人宕氣回腸的五章,每次看這幾章的內(nèi)容都會(huì)感覺非常過癮。因?yàn)樗粌H向整個(gè)EJB的架構(gòu)和傳統(tǒng)觀念發(fā)起了沖擊,而且它的每一條分析都是如何的有理有據(jù),如此的讓人信服。Rod Johnson是一個(gè)實(shí)用主義者,他不是全盤否定了EJB的價(jià)值,而是從實(shí)用的角度出發(fā),對(duì)EJB的方方面面的功能進(jìn)行了深入分析,并說明了EJB的優(yōu)點(diǎn)和缺點(diǎn)。分布式對(duì)象、多線程模型、SFLB、傳統(tǒng)的分布式架構(gòu),一個(gè)個(gè)的EJB的神話被揭穿了。如果說Rod Johnson的前一本書是對(duì)EJB的方方面面零星地提出了懷疑和批判,那么這本書則對(duì)上一本書的思想得到了升華,將這些思想進(jìn)行了匯總,并以深入的方式表達(dá)出來。我們中的大多數(shù)人生活在人云亦云的世界里,或者象Ted Neward說的那樣,我們就象足球比賽里的足球被人踢來踢去。EJB,IOC、AOP,groovy ruby python那樣的動(dòng)態(tài)語(yǔ)言、AJAX、ruby on rail,一樣一樣的新技術(shù)在往外冒,于是我們隨著潮流被這個(gè)技術(shù)踢向了另一個(gè)技術(shù)。我并不是追隨新技術(shù)有什么不好,但是假如我們學(xué)會(huì)象Rod Johnson的那種懷疑權(quán)威,那種從實(shí)用的角度對(duì)技術(shù)進(jìn)行深入分析的思考,我們的世界可能會(huì)就不一樣了(當(dāng)然我們要想不想被人踢來踢去,我們必須要有深厚的技術(shù)功底,而不是人云我否的那樣別人贊,我們就罵)。這也就是我讀這本書的最大收獲,以前我學(xué)struts、EJB或者更早的其它技術(shù)時(shí),我從來沒有懷疑過它們的設(shè)計(jì)有沒有問題,有沒有更佳的解決方案,而是象小學(xué)生背書一樣將這些東西全盤接收。但是現(xiàn)在我每學(xué)一種新技術(shù),都會(huì)從不同的角度分析它的優(yōu)劣和思想,這樣的思考方式對(duì)我們的開發(fā)生涯也許會(huì)有巨大的影響。當(dāng)然這本書的另一個(gè)亮點(diǎn)是它對(duì)各種技術(shù)、開源架構(gòu)進(jìn)行了詳盡的對(duì)比分析。市面上沒有其他(也許是我孤陋寡聞)任何一本書會(huì)將如此多的技術(shù)進(jìn)行如此深入分析,并進(jìn)行的對(duì)比,說明各自的優(yōu)缺點(diǎn)各使用場(chǎng)合。以前只能在某些人的blog或TheServerSide上零零星星地發(fā)現(xiàn)一些個(gè)別的內(nèi)容。而這本書則將J2EE的各個(gè)層面的技術(shù)都進(jìn)行了深入全面地分析,IOC(Spring, Pico, Hivemind)、AOP架構(gòu)(AspectJ, AspectWerkz, JBoss AOP, Spring),Web層的MVC架構(gòu)(Struts, Spring, Webwork)和其它類型的解決方案(Tapestry, JSF, ASP.Net),持久層架構(gòu)(iBatis,Spring DAO, hibernate JDO)與歷史,遠(yuǎn)程連接等等。Rod Johnson的技術(shù)功底在此體現(xiàn)無遺,他對(duì)J2EE的各種技術(shù)的理解都達(dá)到如此多的深度確實(shí)令人佩服。有人認(rèn)為這本書給Spring做托,我對(duì)此只能表示無奈。確實(shí)這本倡導(dǎo)輕量級(jí)容器,倡導(dǎo)用AOP來替換EJB的一些服務(wù),倡導(dǎo)用JDBC框架簡(jiǎn)化數(shù)據(jù)訪問,但是這些都是從實(shí)用的角度考慮的,因?yàn)镾pring確實(shí)給我們帶來了方便,讓我們開發(fā)的程序更有效率更健壯。再說有誰(shuí)不喜歡把自己創(chuàng)造的產(chǎn)品象孩子一樣愛護(hù)的?難道Gavin King不喜歡hibernate,難道robbin不喜歡他一手創(chuàng)辦的論壇?這是個(gè)人的成就感,正是這種成就感推動(dòng)著他們將他們的產(chǎn)品做得更出色。最后說說這本書的中文版,其實(shí)我不太喜歡看中文版的書,我更喜歡Rod Johnson那種嚴(yán)謹(jǐn)又井井有條的文筆,雖然這樣的文筆算不上優(yōu)美,但是卻讓人有一種那肅然起敬的感覺,讓人感覺到真正的英國(guó)紳士(雖然他是澳大利亞人,呵呵。而且他說話或在bbs上留言都會(huì)有文縐縐的感覺)。但是中文版看起來確實(shí)比英文版的快,而且這本書讀起來確實(shí)很流暢。畢竟每一位譯者都是技術(shù)高手,再加上gigix的文筆潤(rùn)色,雖然有些小錯(cuò)誤,但無論如何它的翻譯質(zhì)量絕對(duì)稱得上是精品。當(dāng)然我們不能忽略的是Rod Johnson在這本書之前寫的另一本書, Expert one on one J2EE design and development。很多人把它當(dāng)成J2EE without EJB的第一版,他們錯(cuò)了。這本書的價(jià)值和觀念的沖擊甚至比J2EE without EJB還要大,因?yàn)樗霭嬖?002年,一個(gè)EJB 2還在流行的年代,因?yàn)樗俪闪薙pring的誕生。還因?yàn)檫@本書里的好多章節(jié)到了現(xiàn)在仍然有很大的價(jià)值,這是J2EE without EJB無法替代的,它對(duì)EJB在技術(shù)層面上深入剖析比起J2EE without EJB要細(xì)致好幾倍。其中的第4章更是任何Java開發(fā)者必看的經(jīng)典。本文摘自http://blog.itpub.net/xiecc

作者簡(jiǎn)介

  RodJohnson是一名企業(yè)Java架構(gòu)師,在保險(xiǎn)、電子商務(wù)和金融行業(yè)的信息化領(lǐng)域有豐富的經(jīng)驗(yàn)。他是歐洲最大的門戶網(wǎng)站之一的J2EE架構(gòu)師,并且以顧問的身份參與了大量的項(xiàng)目。Rod在悉尼大學(xué)(UniversityofSydney)獲得了音樂和計(jì)算機(jī)科學(xué)的學(xué)位。在回到軟件開發(fā)領(lǐng)域之前,他還獲得了音樂學(xué)的博士學(xué)位。他有相當(dāng)深厚的C/C++技術(shù)背景,并且從Java和.J2EE發(fā)布之初就已經(jīng)開始使用它們。他積極地參與到Java社群過程(JCP)之中,是JSR-154(SetMet2.4)和JDO2.0規(guī)范專家組的成員。自2000年以來,他參與寫作了好幾本J2EE方面的書籍,暢銷書ExpertOne-on-OneJ2EEDesignandDevelopment(Wrox,2002年)便是出自他的筆下。

圖書目錄

Why“J2EE Without EJB” 1 
為什么要“J2EE Without EJB” 1 
聚光燈下的EJB 1 
EJB Under the Spotlight 1 
J2EE還剩什么? 3 
What's Left of J2EE 3 
站在十字路口的J2EE 4 
J2EE at a Crossroads 4 
前行的路 5 
The Way Forward 5 
主旋律 5 
輕量級(jí)框架和容器 10 
我們還應(yīng)該使用EJB嗎? 11 
Should We Ever Use EJB? 11 
小結(jié) 12 
Summary 12 
Goals 13 
目  標(biāo) 13 
生產(chǎn)率 13 
Productivity 13 
問題 14 
傳統(tǒng)J2EE方案解決生產(chǎn)率問題的辦法 15 
提升生產(chǎn)率更好的辦法 20 
OO 26 
業(yè)務(wù)需求的重要性 28 
The Importance Of Business Requirements 28 
經(jīng)驗(yàn)過程的重要性 28 
The Importance Of An Empirical Process 28 
小結(jié) 29 
Summary 29 
Architectures 31 
各種架構(gòu) 31 
架構(gòu)性構(gòu)件 31 
Architectural Building Blocks 31 
業(yè)務(wù)服務(wù)層 31 
向外部暴露業(yè)務(wù)對(duì)象 35 
數(shù)據(jù)訪問層,或EIS層 40 
J2EE架構(gòu) 42 
J2EE Architectures 42 
兩種EJB架構(gòu) 42 
兩種非EJB架構(gòu) 47 
J2EE架構(gòu)實(shí)例 54 
J2EE Architectures in Practice 54 
“經(jīng)典的”J2EE遠(yuǎn)程EJB架構(gòu) 54 
本地EJB架構(gòu) 57 
特制的非EJB架構(gòu) 59 
iBatis JPetStore v 3.1 60 
“輕量級(jí)容器架構(gòu)”:示例應(yīng)用系統(tǒng) 61 
確定是否采用應(yīng)用服務(wù)器 62 
小結(jié) 63 
Summary 63 
The Simplicity Dividend 65 
簡(jiǎn)單性的紅利 65 
復(fù)雜性的代價(jià) 65 
The Cost of Complexity 65 
在J2EE應(yīng)用系統(tǒng)中,導(dǎo)致復(fù)雜性產(chǎn)生的原因 66 
Causes of Complexity in J2EE Applications 66 
導(dǎo)致復(fù)雜性的架構(gòu)性原因 66 
導(dǎo)致復(fù)雜性的文化性原因:一個(gè)依靠復(fù)雜性為生的產(chǎn)業(yè) 71 
復(fù)雜到什么地步就是過度了? 75 
How Much Complexity Is too Much Complexity? 75 
簡(jiǎn)單還是幼稚? 75 
剛剛夠好就行嗎? 77 
變化的趨勢(shì) 77 
總結(jié) 78 
Summary 78 
EJB, Five Years on 81 
EJB,五年間 81 
炒作和經(jīng)驗(yàn) 81 
Hype and Experience 81 
EJB和J2EE行業(yè) 82 
實(shí)踐中的EJB 82 
一個(gè)過時(shí)的組件模型 82 
An Aging Component Model 82 
Java語(yǔ)言的進(jìn)步 83 
.NET的挑戰(zhàn) 83 
Web Service 85 
敏捷方法學(xué)的興起 86 
關(guān)于EJB目標(biāo)的混淆 86 
從未出現(xiàn)的組件市場(chǎng) 88 
方興未艾的新范式:AOP 88 
EJB, 我們真正需要什么?為什么無狀態(tài)Session Bean如此流行? 89 
What Do We Really Want from EJB, or Why Stateless Session Beans Are So Popular 89 
聲明性事務(wù)管理 90 
遠(yuǎn)程調(diào)用 92 
集群 92 
線程管理 94 
EJB實(shí)例池 94 
資源池 95 
安全 95 
業(yè)務(wù)對(duì)象管理 96 
總結(jié):EJB的服務(wù) 97 
EJB,我們不想要什么? 97 
What Don’t We Want From EFJ? 97 
容器的鎖定 98 
丑陋的結(jié)構(gòu),泛濫的類 98 
部署描述文件的地獄 100 
類加載器的地獄 100 
測(cè)試 100 
EJB的濫用 102 
復(fù)雜的編程模型 102 
簡(jiǎn)單的事情會(huì)變得困難 103 
“讓開發(fā)人員忽略企業(yè)應(yīng)用的復(fù)雜性”,這個(gè)目標(biāo)現(xiàn)實(shí)嗎? 103 
生產(chǎn)率的損失 104 
可移植性的問題 104 
EJB能浴火重生嗎? 104 
Can EJB Reinvent Itself? 104 
工具支持 104 
EJB 3.0 105 
神話與謬論 106 
Myths and Fallacies 106 
J2EE == EJB 106 
使用EJB的可疑論據(jù) 107 
繼續(xù)前進(jìn) 107 
Moving Forward 107 
選擇是否使用EJB 107 
傳統(tǒng)的知識(shí) 107 
今天的選擇 108 
后EJB時(shí)代的輿論 109 
標(biāo)準(zhǔn),創(chuàng)新,和開源 112 
小結(jié) 118 
Summary 118 
Lightweight Containers and Inversion of Control 121 
輕量級(jí)容器與控制反轉(zhuǎn) 121 
輕量級(jí)容器 122 
Lightweight Containers 122 
什么是輕量級(jí)容器? 122 
我們到底為什么需要容器? 124 
輕量級(jí)容器 vs. EJB容器 125 
EJB的好處 126 
管理業(yè)務(wù)對(duì)象 126 
Managing Business Objects 126 
接口與實(shí)現(xiàn)的分離 126 
EJB:不完善的解決方案 127 
控制反轉(zhuǎn) 127 
Inversion of Control 127 
IoC實(shí)現(xiàn)策略 128 
IoC容器 135 
IoC容器間的移植 137 
對(duì)代碼風(fēng)格、測(cè)試以及開發(fā)過程的影響 138 
Implications for Coding Style, Testing, and Develoment Process 138 
代碼風(fēng)格 138 
可測(cè)試性 139 
開發(fā)過程 139 
使用企業(yè)級(jí)服務(wù) 139 
Applying Enterprise Services 139 
小結(jié) 141 
Summary 141 
Introducing the Spring Framework 143 
Spring框架簡(jiǎn)介 143 
來歷與動(dòng)機(jī) 143 
History and Motivation 143 
一個(gè)分層的應(yīng)用框架 144 
A layered Application Framework 144 
基礎(chǔ)構(gòu)建模塊 145 
J2EE之上的Spring 146 
Web應(yīng)用中的Spring 147 
核心bean工廠 149 
The Core Bean Factory 149 
基礎(chǔ)接口 149 
通過XML組裝bean 151 
非XML格式的bean聲明 154 
組裝應(yīng)用對(duì)象 155 
自動(dòng)裝配和依賴檢查 159 
構(gòu)造子決議 160 
生命周期回調(diào) 162 
復(fù)雜的屬性值 164 
資源設(shè)置 165 
典型的Java/J2EE資源訪問 166 
bean容器中的資源聲明 168 
工廠bean 171 
Spring應(yīng)用上下文 175 
The Spring Application Context 175 
生命周期回調(diào) 177 
信息源 178 
文件資源 180 
Bean Factory 后處理 182 
小結(jié) 184 
Summary 184 
Declarative Middleware Using AOP Concepts 187 
基于AOP概念的聲明性中間件 187 
AOP 101 188 
動(dòng)機(jī) 188 
J2EE中的AOP 190 
AOP in J2MM 190 
定義 191 
Defintions 191 
歷史 194 
作為AOP子集的EJB 195 
EJB as a Subset of AOP 195 
AOP實(shí)現(xiàn)策略 197 
AOP Implementation Strategies 197 
動(dòng)態(tài)代理 197 
動(dòng)態(tài)字節(jié)碼生成 198 
Java代碼生成 198 
使用定制的類加載器 198 
語(yǔ)言擴(kuò)展 198 
AOP實(shí)現(xiàn) 199 
AOP Implementations 199 
AspectJ 199 
AspectWerkz 201 
JBoss 4 201 
Spring 203 
Nanning 207 
AOP聯(lián)盟 207 
AOP設(shè)計(jì)問題 207 
AOP Design Issues 207 
AOP的危險(xiǎn)性 207 
AOP設(shè)計(jì)的建議 210 
隨意點(diǎn)菜的J2EE 211 
J2EE à Ia carte 211 
Spring中的AOP實(shí)踐 212 
AOP in Practice with Spring 212 
使用ProxyFactoryBean 213 
便利的FactoryBean 217 
自動(dòng)代理 218 
編程用法 219 
使用源碼級(jí)元數(shù)據(jù)提供AOP之上的抽象 220 
Using Source-level Metadata to Provide an Abstraction above AOP 220 
.NET范例 220 
概念級(jí)元數(shù)據(jù) vs. 實(shí)現(xiàn)級(jí)元數(shù)據(jù) 221 
編程訪問上下文信息 222 
Spring范例 222 
EJB 3.0 225 
編程風(fēng)格的暗含意味 225 
Implications for Programming Style 225 
前后一致的命名規(guī)范 225 
避免依賴AOP基礎(chǔ)設(shè)施 226 
受控異常和增強(qiáng) 227 
參考資料 227 
References 227 
書籍 227 
論文 227 
文章和在線資源 227 
小結(jié) 228 
Summary 228 
Transaction Management 231 
事務(wù)管理 231 
上層(High-level)事務(wù)管理 231 
High-level Transaction Management 231 
傳統(tǒng)的J2EE事務(wù)管理 232 
Classic J2EE Transaction Management 232 
J2EE容器作為事務(wù)協(xié)調(diào)器 233 
The J2EE Container as Transaction Coordinator 233 
人見人愛的CMT 234 
Everybody Loves CMT 234 
典型應(yīng)用:本地?zé)o狀態(tài)Session Beans 235 
直接使用JTA 236 
Direct Use of JTA 236 
插曲:遠(yuǎn)程事務(wù)傳播 237 
Interlude:Remote Transaction Propagation 237 
輕量級(jí)事務(wù)基礎(chǔ)設(shè)施 238 
Lightweight Transaction Infrastructure 238 
Spring Framework的事務(wù)管理 239 
Transaction Management with the Spring Framework 239 
事務(wù)聲明 240 
編程式事務(wù)處理 243 
Programmatic Transaction Demarcation 243 
直接使用PlatformTransactionManager 243 
事務(wù)模板 243 
聲明式事務(wù)管理 246 
Declarative Transaction Demarcation 246 
AOP ProxyFactoryBean和TransactionInterceptor 247 
通過接口來工作的AOP ProxyFactoryBean 249 
簡(jiǎn)化的配置:TransactionProxyFactoryBean 250 
源代碼級(jí)別的元數(shù)據(jù) 251 
事務(wù)管理策略 251 
Transaction Management Strategies 251 
JtaTransactionManager 253 
DataSourceTransactionManager 253 
JdoTransactionManager 255 
HibernateTransactionManager 256 
選擇J2EE服務(wù)器的提示 257 
Implications for J2EE Server Choice 257 
小結(jié) 258 
Summary 258 
Persistence 261 
持久化 261 
常見持久化策略 262 
Common Persistence Strategies 262 
持久化模式概覽 262 
流行的J2EE數(shù)據(jù)訪問解決方案 263 
選擇一種持久化策略 265 
透明持久化和領(lǐng)域?qū)ο蟮男袨?nbsp;268 
Java持久化技術(shù)簡(jiǎn)史 268 
A Brief History of Java Persistence Technologies 268 
Java O/R映射解決方案的緩慢成長(zhǎng) 269 
entity bean的敗筆 271 
實(shí)踐中的數(shù)據(jù)訪問技術(shù) 271 
Data Access Technologies in Practice 271 
資源管理 272 
JDBC 273 
iBATIS SQL映射 275 
JDO 278 
Hibernate 281 
數(shù)據(jù)訪問對(duì)象(DAO)模式 285 
The Data Access Object Pattern 285 
業(yè)務(wù)對(duì)象與數(shù)據(jù)訪問對(duì)象 285 
DAO和透明持久化 287 
數(shù)據(jù)訪問對(duì)象的種類 288 
DAO設(shè)計(jì)中的問題 289 
DAO基礎(chǔ)設(shè)施的問題 292 
使用Spring框架進(jìn)行數(shù)據(jù)訪問 293 
Data Access with the Spring Framework 293 
通用的數(shù)據(jù)訪問異常 293 
再論業(yè)務(wù)對(duì)象與數(shù)據(jù)訪問對(duì)象的關(guān)系 295 
JDBC 298 
iBATIS SQL映射 301 
JDO 302 
Hibernate 304 
小結(jié) 307 
Summary 307 
Persistence 261 
持久化 261 
常見持久化策略 262 
Common Persistence Strategies 262 
持久化模式概覽 262 
流行的J2EE數(shù)據(jù)訪問解決方案 263 
選擇一種持久化策略 265 
透明持久化和領(lǐng)域?qū)ο蟮男袨?nbsp;268 
Java持久化技術(shù)簡(jiǎn)史 268 
A Brief History of Java Persistence Technologies 268 
Java O/R映射解決方案的緩慢成長(zhǎng) 269 
entity bean的敗筆 271 
實(shí)踐中的數(shù)據(jù)訪問技術(shù) 271 
Data Access Technologies in Practice 271 
資源管理 272 
JDBC 273 
iBATIS SQL映射 275 
JDO 278 
Hibernate 281 
數(shù)據(jù)訪問對(duì)象(DAO)模式 285 
The Data Access Object Pattern 285 
業(yè)務(wù)對(duì)象與數(shù)據(jù)訪問對(duì)象 285 
DAO和透明持久化 287 
數(shù)據(jù)訪問對(duì)象的種類 288 
DAO設(shè)計(jì)中的問題 289 
DAO基礎(chǔ)設(shè)施的問題 292 
使用Spring框架進(jìn)行數(shù)據(jù)訪問 293 
Data Access with the Spring Framework 293 
通用的數(shù)據(jù)訪問異常 293 
再論業(yè)務(wù)對(duì)象與數(shù)據(jù)訪問對(duì)象的關(guān)系 295 
JDBC 298 
iBATIS SQL映射 301 
JDO 302 
Hibernate 304 
小結(jié) 307 
Summary 307 
Replacing Other EJB Services 341 
替換其它的EJB服務(wù) 341 
線程管理 342 
Thread Management 342 
線程神話 342 
EJB線程模型 345 
EJB實(shí)例池 346 
EJB Instance Pooling 346 
何時(shí)需要實(shí)例池? 347 
何時(shí)不需要實(shí)例池 347 
EJB線程機(jī)制和緩沖池的替代方案 349 
Aiternatives to EJB Threading and Pooling 349 
線程模型 349 
ThreadLocal“緩沖池” 357 
實(shí)例池概述 358 
聲明性安全 359 
Declarative Security 359 
EJB安全模型 359 
EJB模型的缺陷 359 
借助AOP的聲明式安全 359 
JMS和消息驅(qū)動(dòng)Bean 360 
JMS and Message-driven Beans 360 
小結(jié) 360 
Summary 360 
Web Tier Design 363 
Web層設(shè)計(jì) 363 
目標(biāo)和體系結(jié)構(gòu)的討論 364 
Goals and Architectural Issues 364 
Web層設(shè)計(jì)目標(biāo) 365 
用Servlet和JSP定制的MVC 366 
融入整體架構(gòu) 368 
硬編碼連接的單例業(yè)務(wù)對(duì)象 369 
請(qǐng)求驅(qū)動(dòng)的Web MVC框架 374 
Request-driven Web MVC Frameworks 374 
Struts 1.1 375 
WebWork2 381 
Spring的Web MVC框架 388 
與中間層的集成 400 
適宜的視圖技術(shù) 401 
Web MVC的其它實(shí)現(xiàn)方式 403 
Alternative Approaches to Web MVC 403 
Portals和Portlets 403 
事件驅(qū)動(dòng)的Web MVC框架 404 
小論ASP.NET 409 
總結(jié) 410 
Summay 410 
Unit Testing and Testability 411 
單元測(cè)試與可測(cè)試性 411 
為何測(cè)試很重要? 412 
Why Testing Matters 412 
單元測(cè)試的目標(biāo) 414 
Goals of Unit Tesing 414 
確??蓽y(cè)試性 415 
Ensuring Testability 415 
編程風(fēng)格 415 
如何讓你的代碼難于測(cè)試 416 
來自標(biāo)準(zhǔn)庫(kù)的難題 420 
提高可測(cè)試性的技巧 421 
依賴倒置 425 
AOP 425 
單元測(cè)試技巧 425 
Unit Testing Techniques 425 
替換 425 
模仿對(duì)象 426 
編寫有效測(cè)試 430 
測(cè)試驅(qū)動(dòng)開發(fā)(TDD) 433 
Test-driven Development(TDD) 433 
好處 433 
對(duì)TDD的反對(duì)意見 434 
TDD實(shí)踐 436 
學(xué)習(xí)TDD 436 
案例研究:Spring的經(jīng)驗(yàn) 437 
Case Study:The Spring Experience 437 
測(cè)試Spring應(yīng)用程序 440 
Testing Spring Applications 440 
對(duì)POJO進(jìn)行測(cè)試 440 
Spring的抽象帶來的好處 440 
何時(shí)需要依賴Spring API? 441 
使用替換配置進(jìn)行測(cè)試 442 
覆蓋率分析和其他測(cè)試工具 443 
Coverage Analysis and Other Test Tools 443 
測(cè)試生成器 444 
覆蓋分析工具 444 
突變測(cè)試工具 447 
資源 448 
Resources 448 
小結(jié) 449 
Summary 449 
Performance and Scalability 452 
性能與可伸縮性 452 
定義 453 
Definitions 453 
設(shè)置清晰的目標(biāo) 454 
Setting Clear Goals 454 
體系結(jié)構(gòu)的選擇:影響性能和可伸縮性的關(guān)鍵因素 455 
Architectural Choices:The Key to Performance and Scalability 455 
對(duì)象分布、集群和農(nóng)場(chǎng) 456 
不同實(shí)現(xiàn)的選擇 464 
Implementation Choices 464 
擺脫EJB服務(wù)設(shè)施對(duì)性能的影響 464 
結(jié)果總結(jié) 469 
緩存和代碼優(yōu)化 472 
Caching and Code Optimization 472 
代碼優(yōu)化,以及為何要避免它 472 
緩存 473 
潛在代碼優(yōu)化 474 
調(diào)優(yōu)和部署 477 
Tuning and Deployment 477 
JVM 477 
應(yīng)用服務(wù)器 477 
框架配置 478 
數(shù)據(jù)庫(kù)配置 478 
一種循證的性能策略 479 
An Evidence-based Approach to Performance 479 
基準(zhǔn)測(cè)試 480 
采樣(Profiling) 481 
診斷 485 
資源 486 
Resources 486 
總結(jié) 486 
Summary 486 
The Sample Application 489 
示例應(yīng)用系統(tǒng) 489 
Pet Store(寵物店)業(yè)務(wù)需求 490 
Pet Store Requirements 490 
iBATIS JPetStore 3.1 490 
中間層 491 
遠(yuǎn)程調(diào)用機(jī)制 493 
可改進(jìn)的空間 494 
Spring JPetStore 494 
中間層 496 
數(shù)據(jù)訪問層 499 
Web層 502 
遠(yuǎn)程機(jī)制 510 
訪問遠(yuǎn)程服務(wù) 513 
編譯和部署 516 
Build and Deployment 516 
WAR部署中的一些問題 516 
資源引用 517 
JSP和JSTL 518 
部署Spring JPetStore 519 
小結(jié) 520 
Summary 520 
Conclusion 521 
結(jié) 語(yǔ) 521 
回顧 522 
Looking Back 522 
前行 524 
Moving Forward 524 
指導(dǎo)方針 531 
Guidelines 531 
寫在最后 536 
Last Words 536

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)