-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

架構探險——從零開始寫Java Web框架

( 簡體 字)
作者:黃勇類別:1. -> 程式設計 -> 網路編程 -> JSP
譯者:
出版社:電子工業出版社架構探險——從零開始寫Java Web框架 3dWoo書號: 42154
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:8/1/2015
頁數:364
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121268298
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

其實一開始黃勇找我為他的處女作寫序的時候,我是拒絕的。因為你不能讓我寫,我馬上就寫。我要先看一下書,因為我不愿意寫完后發現書很爛,然后讀者來罵我亂推薦。
黃勇一直是開源中國非常活躍的會員,非常積極地回答各種問題和分享自己所擅長的知識。本身也是 Smart Framework 框架的作者,積分居然過千,要知道開源中國上超過 1000 積分的會員寥寥無幾。我和黃勇并沒有見過面,僅通過線上的信息大概覺得他是一個熱情、虛懷若谷又非常接地氣的技術牛人。
回歸正題,2015年是 Java 的 20 周年。Java 是一門讓我們又愛又恨的編程語言,在編程語言界里算是一棵老樹,關鍵是這棵老樹還頻頻長出新枝。Java 8 的出現使其具備了各種流行的編程理念,而全新的 Java 9 也已經奠定了Java發展的里程碑并將于2016年下半年發布正式版本。說起又愛又恨,在 Java 最火熱的那幾年里,滿世界的 SSH (Struts+Spring+Hibernate),所有人都在討論 SSH 框架里的奇技淫巧,也出現了各種圖書和培訓教程。很多初學者認為 Java = SSH,學 Java 就是學 SSH,以至于很多人用 SSH 做了不少項目,但依然對 Java、HTTP 等基礎知識一知半解、不甚了了。
在 Web 開發方面,Java 經歷了這么幾個階段,從最開始使用大量 Servlet 來處理各種業務邏輯,然后出現了著名的 Struts 框架,大大簡化了 Web 應用的開發以及配置,而后是 Hibernate 和 Spring 的出現,使這三者成為三駕馬車,并一直流行到現在。
而如今,確切地說應該是最近幾年,Java 用戶開始回歸理性。由于 SSH 在不斷發展的同時,體積也變得越來越龐大,很多人在使用的過程中被各種配置、注解弄得頭昏腦漲。而前些年 Ruby on Rails 框架以其“慣例優于配置”的理念讓我們猛然清醒——原來 Web 的開發就應該這么簡單。于是越來越多的 Java 開發者開始考慮輕量級框架解決方案。而黃勇的 Smart Framework 就是這種輕量級解決方案之一。
Java 的世界從來不缺乏各種優秀的開源軟件,理念成熟后大量的輕量級 Web 框架如雨后春筍般出現在我們眼前。在開源中國網站上你會發現 Java 的 Web 框架有超過 300 款之多。那么多的框架對初學者來說簡直是噩夢。于是三年前我寫了一篇文章《初學 Java Web 開發,請遠離各種框架,從 Servlet 開發》,今天一看,這篇文章居然超過了21萬閱讀量。這篇文章是針對 Java 初學者的,因為很多人為了學習各種框架而疲于奔命,但卻從來沒有思考為什么同樣是做開發的,自己要比別人更累。最根本原因在于方法不對,事倍功半!
在招聘 Java 開發人員時我最愛問的一個問題是:請解釋一下 Session 的工作原理,從而來判斷應聘者對基礎知識的掌握情況。那么什么才是初學者學習 Web 開發的好方法呢?其實我在前面提到的文章里包含了詳細的步驟,簡單地說就是先要熟悉 Java EE 里關于 Servlet API 中的常用類和方法。在這個基礎上再去學習某個框架的使用,最后是閱讀 HTTP 協議的內容。想成為高手必須對 HTTP 協議有著深入的了解。一旦掌握了這些基礎的內容,你會發現使用框架甚至是開發一個適合自己業務的框架是多么的容易。
而黃勇的這本書,雖然我只是看到書的目錄以及前面兩三章的內容,但相信這是一本對初學者非常好的書,沒有華麗的詞藻,實實在在地講述了整個開發流程。這本書不是在教你怎么用 Smart Framework,而是展示了作者開發這個框架的整個心血歷程,包括設計一個框架所用到的各種技術,還涉及了很多底層的 Java 技術,如類加載器、依賴注入、線程本地、事務管理和安全控制,等等。
不管是學習還是在實際的開發中,少問怎么做,多問問為什么要這么做。或許,這就是黃勇想要告訴大家的吧。
紅薯
開源中國(oschina.net)創始人
2015年6月12日
于北京到上海的 G123 列車上

前  言


記得在2013年9月,那時我工作不太忙,利用自己的閑暇時間,寫了一款名為Smart的輕量級Java Web框架,并發布到“開源中國”(oschina.net)社區網站上。當時引發了同行們的大量關注,隨后紛紛出現了其他大量關于“輕量級Java Web框架”的開源項目。
當然也有人覺得此類項目沒有多大意義,畢竟Spring等框架已經足夠成熟了,功能完全能夠滿足我們日常的開發需求,為什么還要“重復發明輪子”呢?
對此問題,我是這樣認為的:
1.對于Spring框架而言,雖然它已經足夠強大了,但也更加臃腫了,因為它提供的所有功能我們并非都需要。
2.市面上有很多優秀的開源框架,我們不妨取其精華,自己動手開發一款適合自身開發需求的框架。
3.國內開源環境與國外差距較大,我們需要從自身做起,才能帶動身邊更多的人一起投身到國內開源事業中去。
也許我的力量非常薄弱,但只要能涌現出一批熱血的開源人,相信國內開源市場的前景一定會越來越好!
我認為自己的選擇并沒有錯,于是我一邊寫代碼,一邊寫博客,在短短的幾個月里,寫了上萬行代碼、上百篇博客(我的博客地址:http://my.oschina.net/huangyong/blog)。我想把自己在開發過程中遇到的問題與經驗都記錄下來,并且分享出去,讓更多的人受益。
直到有一天,我接到了博文視點陳曉猛編輯的邀請,陳編輯想讓我出一本書,選題讓我自己來定。當時我既歡喜又發愁,歡喜是由于終于有機會出版自己的書了,發愁是由于自己的經驗與水平十分有限,難以寫出好的作品,所以只能大膽嘗試了。
在寫這本書之前,我發現在國內介紹如何使用一些開源框架的書已經非常多了,但教會大家怎樣從零開始寫框架的書卻非常少,因此我打算寫一本這樣的書——從零開始寫Java Web框架。在寫書前我備感壓力,因為我只寫過一點技術博客,還從未寫過書。對于寫書而言,我是非常缺乏經驗的,總是擔心自己寫得不夠好,要么寫得太晦澀,要么寫得太膚淺。反反復復逐字推敲,直到交稿的時候,我心里還是忐忑不安。
我在寫這本書時下定了決心,面對的讀者非常具體,他們必須具備一定的Java功底,尤其是 Java Web 方面的開發經驗,他們都是希望步入架構師行列的程序員。所以,這本書的內容不能過于理論,而是需要將理論融入到實踐中。全書以實現一款輕量級Java Web框架為主線,建議讀者能親手實踐,這樣才能學到更多有價值的東西。
本書內容
全書共5章,每章有先后順序,建議讀者按照章節順序進行閱讀。
第1章:從一個簡單的Web應用開始,教會讀者如何使用IDEA、Maven、Git等開發工具來搭建一個Java Web項目。
第2章:為Web應用添加業務功能,從需求分析與系統設計開始,帶領讀者動手開發一款簡單的Web應用,并進行了相關細節完善與代碼優化。
第3章:搭建輕量級Java Web框架,一切都是從零開始,逐個實現類加載器、Bean容器、IOC框架、MVC框架,本章所涉及的代碼也是整個框架的核心基礎。
第4章:使框架具備AOP特性,從代理技術講到AOP技術,從ThreadLocal技術講到事務控制技術,通過閱讀本章,讀者可學會如何實現AOP框架,以及事務管理框架。
第5章:框架優化與功能擴展,通過對現有框架的優化,使框架提供更加完備的功能,并以擴展 Web 服務插件與安全控制插件為例,教會讀者如何對框架進行擴展。
致謝
首先要感謝我的家人,特別是我的妻子,當占用大量休息時間寫作的時候,她能夠給予我極大的理解與支持,獨自承擔了所有的家務,以及照顧寶寶的生活,讓我能夠在沒有任何打擾的環境下,全身心地投入到寫作當中。如果沒有她的幫助,這本書是無法完成的。
感謝開源中國社區網站,感謝創始人紅薯,感謝曾經幫助我的朋友們,他們是:大漠真人、july、小菜的粉絲、ipandage、蛙牛、Liuzh_533、羅盛力、Bieber、哈庫納、悠悠然然、黃億華、Dead_knight、疑似一僧、楊唯浩、V神、石頭哥哥、乒乓狂魔、鄒建芳、山哥、光石頭(排名不分先后),沒有你們的支持與鼓勵,我是沒有決心把開源做下去的,更不可能寫出這本書。
感謝與我一起共事的同事們,讓我體會到了團隊的力量,在你們的身上我學到了許多寶貴的經驗,也感謝你們為本書提供的寶貴建議。
感謝博文視點的編輯,這本書能夠如期出版,離不開你們的敬業精神與一絲不茍的工作態度,我為你們點贊!
本書資源
本書下載資源請登錄博文視點官網(www.broadview.com.cn/26829)中的“下載資源”進行下載。



黃勇
2015年6月于上海
內容簡介:

本書首先從一個簡單的 Web 應用開始,讓讀者學會如何使用 IDEA、Maven、Git 等開發工具搭建 Java Web 應用;接著通過一個簡單的應用場景,為該 Web 應用添加若干業務功能,從需求分析與系統設計開始,帶領讀者動手完成該 Web 應用,完善相關細節,并對已有代碼進行優化;然后基于傳統 Servlet 框架搭建一款輕量級 Java Web 框架,一切都是從零開始,逐個實現類加載器、Bean 容器、IoC 框架、MVC 框架,所涉及的代碼也是整個框架的核心基礎。為了使框架具備 AOP 特性,從代理技術講到 AOP 技術,從 ThreadLocal 技術講到事務控制技術。最后對框架進行優化與擴展,通過對現有框架的優化,使其可以提供更加完備的功能,并以擴展 Web 服務插件與安全控制插件為例,教會讀者如何設計一款可擴展的Web應用框架。

目錄:

第1章 從一個簡單的Web應用 1
正所謂“工欲善其事,必先利其器”,在正式開始設計并開發我們的輕量級Java Web框架之前,有必要首先掌握以下技能:
使用IDEA搭建并開發Java項目;
使用Maven自動化構建Java項目;
使用Git管理項目源代碼。
1.1 使用IDEA創建Maven項目 3
1.1.1 創建IDEA項目 3
1.1.2 調整Maven配置 3
1.2 搭建Web項目框架 5
1.2.1 轉為Java Web項目 5
1.2.2 添加Java Web的Maven依賴 6
1.3 編寫一個簡單的Web應用 10
1.3.1 編寫 Servlet類 10
1.3.2 編寫JSP頁面 11
1.4 讓Web應用跑起來 12
1.4.1 在IDEA中配置Tomcat 12
1.4.2 使用Tomcat的Maven插件 13
1.4.3 以Debug方式運行程序 13
1.5 將代碼放入Git倉庫中 14
1.5.1 編寫.gitignore文件 14
1.5.2 提交本地 Git 倉庫 15
1.5.3 推送遠程Git倉庫 15
1.5.4 總結 16
第2章 為Web應用添加業務功能 17
我們將在這個應用的基礎上增加一些業務功能,您將學會更多有關項目實戰的技能,具體包括:
如何進行需求分析;
如何進行系統設計;
如何編寫應用程序。
2.1 需求分析與系統設計 19
2.1.1 需求分析 19
2.1.2 系統設計 19
2.2 動手開發Web應用 21
2.2.1 創建數據庫 22
2.2.2 準備開發環境 22
2.2.3 編寫模型層 23
2.2.4 編寫控制器層 25
2.2.5 編寫服務層 27
2.2.6 編寫單元測試 28
2.2.7 編寫視圖層 31
2.3 細節完善與代碼優化 31
2.3.1 完善服務層 32
2.3.2 完善控制器層 59
2.3.3 完善視圖層 60
2.4 總結 65
第3章 搭建輕量級Java Web框架 66
我們需要這樣的框架,它足夠輕量級、足夠靈巧,不妨給它取一個優雅的名字——Smart Framework,本章我們就一起來實現這個框架。
您將通過本章的學習,掌握如下技能:
如何快速搭建開發框架;
如何加載并讀取配置文件;
如何實現一個簡單的IOC容器;
如何加載指定的類;
如何初始化框架。
3.1 確定目標 68
3.2 搭建開發環境 70
3.2.1 創建框架項目 70
3.2.2 創建示例項目 73
3.3 定義框架配置項 74
3.4 加載配置項 75
3.5 開發一個類加載器 78
3.6 實現Bean容器 87
3.7 實現依賴注入功能 90
3.8 加載Controller 93
3.9 初始化框架 97
3.10 請求轉發器 98
3.11 總結 109
第4章 使框架具備AOP特性 110
在本章中,讀者將學到大量有用的技術,具體包括:
如何理解并使用代理技術;
如何使用Spring提供的AOP技術;
如何使用動態代理技術實現AOP框架;
如何理解并使用ThreadLocal技術;
如何理解數據庫事務管理機制;
如何使用AOP框架實現事務控制。
4.1 代理技術簡介 112
4.1.1 什么是代理 112
4.1.2 JDK動態代理 114
4.1.3 CGlib動態代理 116
4.2 AOP技術簡介 118
4.2.1 什么是AOP 118
4.2.2 寫死代碼 119
4.2.3 靜態代理 120
4.2.4 JDK動態代理 121
4.2.5 CGLib動態代理 122
4.2.6 Spring AOP 124
4.2.7 Spring + AspectJ 136
4.3 開發AOP框架 142
4.3.1 定義切面注解 142
4.3.2 搭建代理框架 143
4.3.3 加載AOP框架 150
4.4 ThreadLocal簡介 158
4.4.1 什么是ThreadLocal 158
4.4.2 自己實現ThreadLocal 161
4.4.3 ThreadLocal使用案例 163
4.5 事務管理簡介 172
4.5.1 什么是事務 172
4.5.2 事務所面臨的問題 173
4.5.3 Spring的事務傳播行為 175
4.6 實現事務控制特性 178
4.6.1 定義事務注解 178
4.6.2 提供事務相關操作 181
4.6.3 編寫事務代理切面類 182
4.6.4 在框架中添加事務代理機制 184
4.7 總結 185
第5章 框架優化與功能擴展 186
本章將對現有框架進行優化,并提供一些擴展功能。通過本章的學習,讀者可以了解到:
如何優化Action參數;
如何實現文件上傳功能;
如何與Servlet API完全解耦;
如何實現安全控制框架;
如何實現Web服務框架。
5.1 優化Action參數 188
5.1.1 明確Action參數優化目標 188
5.1.2 動手優化Action參數使用方式 188
5.2 提供文件上傳特性 191
5.2.1 確定文件上傳使用場景 191
5.2.2 實現文件上傳功能 194
5.3 與Servlet API解耦 214
5.3.1 為何需要與Servlet API解耦 214
5.3.2 與Servlet API解耦的實現過程 215
5.4 安全控制框架——Shiro 219
5.4.1 什么是Shiro 219
5.4.2 Hello Shiro 220
5.4.3 在Web開發中使用Shiro 224
5.5 提供安全控制特性 230
5.5.1 為什么需要安全控制 230
5.5.2 如何使用安全控制框架 231
5.5.3 如何實現安全控制框架 242
5.6 Web服務框架——CXF 261
5.6.1 什么是CXF 261
5.6.2 使用CXF開發SOAP服務 262
5.6.3 基于SOAP的安全控制 278
5.6.4 使用CXF開發REST服務 291
5.7 提供Web服務特性 308
5.8 總結 329
附錄A Maven快速入門 330
附錄B 將構件發布到Maven中央倉庫 342
序: