-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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書號
詳細書籍分類

Spring MVC實戰

( 簡體 字)
作者:張龍等類別:1. -> 程式設計 -> JAVA -> Spring
譯者:
出版社:電子工業出版社Spring MVC實戰 3dWoo書號: 46485
詢問書籍請說出此書號!

缺書
NT售價: 495

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

譯者序:

前言:

譯者序
毋庸置疑, Spring現在已經成為 Java企業級開發事實上的標準。同時, Spring也早已從最初的單一 IoC與 AOP框架發展成為一站式的開發平臺,例如流行的 Spring Batch、Spring Boot、Spring Cloud、Spring Data、Spring Security及 Spring Kafka等。圍繞著 Spring的生態圈也異常繁榮。在 Spring所提供的諸多基礎項目中, Spring MVC可謂一枝獨秀。雖然相較于 Struts、JSF等 Java Web框架與標準,Spring MVC出現時間較晚,但憑借著 Spring強大的社區與開發者的支持, Spring MVC現已在全世界各大互聯網公司與傳統企業中得到了極為廣泛的應用,其發展勢頭要遠遠超過其他先行者。這與 Spring MVC向開發者所提供的各項“開箱即用”特性、對于 Web開發的強有力支持以及與 Spring框架的天然整合是密不可分的。
本書是一本專門介紹 Spring MVC的專著,由淺入深地介紹了 Spring MVC方方面面的功能與特性,從一開始的環境搭建到微服務設計與架構,再到持久化、 REST API構建、認證、對 WebSockets與 STOMP的支持以及測試……詳盡介紹了 Spring MVC在軟件開發各個領域的應用與實現。
全書共分為 9章,每章都單獨講述一個主題,因此并不要求讀者按照順序逐章閱讀;相反,讀者可以根據自身情況選擇感興趣的章節閱讀并學習。對于缺乏 Spring MVC經驗的開發者來說,建議從第 1章開始按照順序學習,以實現最好的學習效果。
Spring MVC本身是個龐雜的主題,這是因為框架本身涉及了太多的領域與設計理念,對于初學者來說難免陷入具體細節而無法脫身。本書獨辟蹊徑,從功能角度對全書章節進行劃分,每章講解 Spring MVC所支持的一個重要概念與領域。通過這種方式,學習者可以有針對性地學習 Spring MVC所提供的方方面面的特性。此外,本書的另一個特色是示例代碼豐富,每個主題均提供相關可運行的示例代碼供讀者學習與參考,這是一種非常棒的學習方式。而且,很多章節最后還提供了延伸內容供學習者進一步提升水平。相信通過循序漸進的學習,當閱讀完本書并實現書中所提供的各項示例代碼后,讀者會完全掌握 Spring MVC的各項功能特性并能投入到實際的項目開發中。值得一提的是,除了 Spring MVC之外,本書還對其他相關的技術領域進行了較為詳盡的介紹,例如 Angular、Bootstrap、WebSockets、測試等,這些都是使用 Spring MVC進行項目開發時或多或少會使用到的一些技術與框架。相信通過對這些技術的學習,讀者所掌握的技能將會超越 Spring MVC本身。翻譯技術圖書是一項艱苦的勞動,這不僅涉及大量腦力的付出,還有體力上的消耗。作為譯者,我們最大的心愿就是為讀者提供準確的翻譯,為讀者帶來切實的幫助。這個目標也在翻譯過程中不斷提醒著我們,要對得起原書作者的傾情創作,要對得起各位讀者的信任。因此,我們在整個翻譯過程中,絲毫不敢懈怠,目的就是為了保證譯稿的質量。本書由張龍、丁濤、李哲與覃璐共同翻譯完成,張龍完成了最后的統稿與校對工作。這里要特別感謝電子工業出版社的張春雨老師與劉舫老師,二位老師在專業素養與團隊協作方面展現出了極高的專業性,確保了本書的翻譯工作能夠順利完成。每次與二位老師溝通都非常順暢,同時進一步確保了譯稿的質量。雖已盡心盡力,奈何技術與文字水平有限;雖已校對多次,但依然不敢保證全書沒有任何錯誤。因此,讀者在閱讀本書的過程中如果發現任何問題都請不吝賜教。
衷心期望本書能給希望系統學習 Spring MVC的讀者朋友們帶來切實的幫助,幫助大家快速掌握這一流行的 Java Web開發框架。
張龍2017-02-15于北京
致謝
首先,我要對與本書直接相關的所有人表示感謝,這包括所有審校者、內容編輯、技術與組稿編輯等。
我想到了曾經就讀的法語工程學院以及在那里遇到的人們,他們對于技術展現出了濃厚的熱情。
非常高興能從事 IT行業。感謝身邊支持我在這個方向發展的所有人和物。當我在這個領域的興趣不斷增長時,我真的沒想到自己會從事這個職業。
編寫這本書是一個曠日持久的項目。必須要提一下我的搭檔 Helena,感謝她在這幾個月的時間內的耐心以及對我的支持;我的家人與朋友們不斷鼓勵我;我的父親則是我的靈感之源。
最深的感謝要獻給出版社,感謝他們出版了這本書并認可這個項目。感謝來自于 Pivotal Software, Inc與 Spring社區的工程師們所給出的專家建議,感謝他們提供的易讀的文檔與官方參考。
最后,我想要感謝正在閱讀這些文字并且可能已經購買了本書的你們,我希望這本書能給你們帶來切實的幫助。

關于審校者
David Mendoza是一位軟件工程師,他從 1999年就開始從事 Java Web開發了。他的開發之路始于 JSP與 Servlet,并創建了自定義的 Web框架。后來他發現了 AppFuse,這將其帶入 Spring與 Struts的世界。接下來,他又轉向了 Spring MVC并且再也不想回到過去了。作為一名 Java顧問, David的足跡遍及墨西哥、美國、加拿大、委內瑞拉、西班牙等國家,與荷蘭國際銀行、花旗集團及西班牙電信公司都有過合作。他目前供職于西南復臨大學,這是一家位于得克薩斯州達拉斯南部的私立大學,他主要負責整個 Web平臺的建設工作。

前言
歡迎閱讀這本獨一無二的《Spring MVC實戰》,希望你已經為本書的探索之旅做好了準備,本書會帶你暢游現代 Spring Web開發實踐。
1 企業級 Spring應用的搭建
本章介紹了業界的一套標準實踐,從配置 Eclipse IDE以對 Java 8、Tomcat 8、GIT與 Maven提供更優化的支持,到理解 Maven作為一個構建自動化工具以及作為一個依賴管理工具的認識,閱讀本章后你將會了解如何在一個堅實的基礎上部署 Spring框架。
無論一個項目旨在成為一個能夠獲得豐厚利潤的產品,抑或僅僅是一個練習,都是從相同的企業級模式開始的。
本章并不僅僅是開發 Cloud Street Market應用的第一個階段,還為面向企業級 Spring應用的開發者提供了大量的標準化實踐。
2 使用 Spring MVC設計微服務架構
本章內容有些多,介紹了 Spring MVC的核心原則,比如請求流與 DispatcherServlet的中心角色,還介紹了如何通過與控制器相關的注解來配置 Spring MVC控制器與控制器方法處理器。
在微服務架構的搭建過程中,我們在各個模塊與 Web項目中安裝了 Spring與 Spring MVC,用于構建易于部署且可伸縮的功能性單元。從這個視角來看,我們通過一個 Web模塊來構建應用,該模塊負責提供一個 Twitter Bootstrap模板,同時與另一個專門用作 REST Web Services的 Web模塊搭配使用。
本章將介紹如何通過 JSTL將模型從控制器傳遞給 JSP視圖,以及如何通過 AngularJS來設計 JavaScript MVC模式。
3 Java持久化與實體
本章介紹了持久化相關的內容。在這個階段,了解如何在 Spring生態圈以及 Spring MVC應用中處理持久化數據很有必要。該章將介紹如何在 Spring中通過 dataSource與 entityManagerFactory來配置 JPA持久化提供者( Hibernate)。你將學習如何從 EJB3實體來構建好處極多的 JPA對象關系映射,接下來會學習如何通過 Spring Data JPA來查詢倉庫。
4 為無狀態架構構建 REST API
本章揭示了如何將 Spring MVC作為 REST Web Services引擎。我們將會看到框架對此所提供的令人驚嘆的支持,只需為抽象的與 Web相關的邏輯的方法處理器提供幾個注解即可,這樣我們就可以將主要精力放在業務上了。這個原則也用在了請求綁定(參數、 URL路徑與頭信息綁定等)與響應編排注解方面,同時在 Spring Data的集成支持上也用到了。
本章還介紹了如何創建作為 Spring MVC一部分的異常處理器來將預定義的異常類型轉換為通用的錯誤響應。你將學到如何配置內容協商(這是 REST APIs的重要內容),最后還將學習如何通過 Swagger與 Swagger UI來公開并文檔化 REST端點信息。
5 使用 Spring MVC進行認證
本章介紹了如何在控制器與服務層對 HTTP BASIC與 OAuth2等標準協議配置認證。你將學習與 Spring Security相關的幾個概念與實踐,例如過濾器鏈、 <http>命名空間、認證管理器,以及角色與用戶的管理等。我們的 OAuth2流是個客戶端實現。我們在用戶首次使用第三方提供者 Yahoo! 時在應用中對其進行認證。這些 Yahoo! 的認證與連接信息稍后會被用于從 Yahoo! Finance中拉取最新的財經數據。借助于 Spring Social庫,我們可以在后臺對 OAuth2實現完全的抽象化。
6 實現 HATEOAS
本章介紹了如何將 RESTful Spring MVC API更進一步。超媒體驅動的應用為每個單獨的請求資源都提供了鏈接,這些鏈接反映了相關資源的 URL。它們向客戶端(無論是何種類型的客戶端)提供了實時的導航選擇—精確的文檔,同時也是實際的實現。該章將會介紹如何通過 JPA實體關聯或控制器層來構建這種鏈接。
7 開發 CRUD操作與校驗
本章介紹更加高級的 Spring MVC概念,通過認識支持交互式 HTTP方法( PUT、POST 與 DELETE)的工具與技術,我們將學習如何使用 HTTP1/1規范( RFC 7231語義與內容)來返回恰當的響應狀態碼與頭信息。
本章通過 Spring Validator與 ValidationUtils輔助類的搭配使用來提供與驗證相關的 JSR-303和 JSR-349規范的兼容實現。該章的最后一節將會介紹消息與內容的國際化( I18N)。我們還通過 AngularJS提供了一個客戶端實現,使用了已發布的國際化 Web Services。
8 通過 WebSocket與 STOMP進行通信
本章將會聚焦于“冉冉升起”的 WebSocket技術,并為我們的應用構建面向消息的中間件。該章提供了一個大家很少會見到的示例,通過 Spring實現了關于 WebSockets的大部分內容,從默認的嵌入式 WebSocket消息代理的使用,到特性完備的外部代理(借助于 STOMP與 AMQP協議)。我們將會了解如何向多個客戶端廣播消息,以及如何通過優秀的可伸縮特性推遲耗時任務的執行。
通過本章你還將學到如何動態創建私有隊列,以及如何獲取認證客戶端并通過這些私有隊列與其收發消息。
為了實現 WebSocket認證與消息認證,我們將 API置為有狀態的。對于有狀態來說,我們要知道的是 API將會使用 HTTP會話在多個請求間保持用戶的認證狀態。借助于 Spring Session與高度集群化的 Redis服務器的支持,會話將可以在多個 Web應用間共享。
9 測試與故障排除
本章介紹了一套用于維護、調試與改進應用狀態的工具與一般做法。作為本書的最后一部分內容,我們將會學習如何通過 Flyway Maven Plugin將數據庫模式從一個應用版本升級為另一個,并將其作為 Maven構建的一部分。我們還會學習如何編寫自動化單元測試(借助于 Maven Sure.re與 Mockito)與集成測試(使用一套庫,例如 Cargo、Rest-assured與 Maven Failsafe)。
該章的最后一節介紹了將 Log4j2作為全局日志框架的做法,無論什么環境,我們都可以通過這一日志解決方案來高效排錯。

書中多個章節都列出了系統需要具備的硬件與軟件條件。而且,學習本書經常需要訪問互聯網資源,有不少擴展內容都給出了鏈接,或者需要下載必備軟件。此外更加重要的是,本書使用 Git版本系統來管理每章的代碼基,本地的 Git倉庫需要對應于項目的遠程倉庫(位于 GitHub上),要能夠訪問這個遠程倉庫。
 前言
本書的示例支持三種操作系統: MS Windows、Linux與 Mac OS X。對于硬件平臺,推薦使用主流、高性能的工作站,最低 2 GB內存, 500 MB以上空閑硬盤空間。

在編寫本書時,作者的一個目標就是一方面盡量保持內容的可讀性,另一方面則盡量多地向讀者介紹現代 Web開發的實踐。
我們相信,對 Spring MVC感興趣的大多數讀者的主要目的在于尋求一個入門套件和工具箱,來開發現代、基于 Spring的 Web應用。我們還相信,大多數讀者都傾向于通過實踐而非理論來強化對概念的理解。當下,我們都知道人們具有不同的學習習慣與方式。
鑒于此,本書的各個章節都是逐步推進的,從直觀的第 1章到更具挑戰性的第 8章。相比后面的章節來說,前幾章更適合大多數 Java開發者。
話雖如此,本書卻幾乎包含了你所要的一切!本書配套的示例應用已經處于運行狀態,等待著你的探索,理解其工作方式。
一般來說,我們假定你是一名具有 Web開發經驗的 Java開發者。此外,我們期望你對學習 Spring Web技術擁有濃厚的興趣。
內容簡介:

本書由淺入深地介紹了當今流行的Java Web框架Spring MVC的方方面面,從基礎的環境搭建到微服務設計與架構,再到持久化、REST API構建、認證與測試……涵蓋了Spring MVC諸多重要且常用的特性。值得一提的是,本書針對Spring MVC的每一項特性都提供了完整可運行的示例代碼,可以幫助讀者更好地掌握這項技術。無論是Spring MVC的初學者,還是擁有一定經驗的開發人員,都能夠從本書中獲得啟發,更好地理解Spring MVC這一Web開發“利器”。

目錄:

1 企業級Spring應用的搭建. ......1

引言 ...1

安裝Eclipse JEE開發者版本與Java SE 8 ....2

為Eclipse配置Java 8、Maven 3和Tomcat 8 ....5

定義Maven的項目結構 ......12

安裝Spring、Spring MVC和Web結構 .....24


2 使用Spring.MVC設計微服務架構. ...35

引言 ...35

使用簡單URL映射配置控制器 .....36

使用ViewResolver配置回退控制器 .....49

使用Bootstrap創建并自定義響應式單頁面Web設計.53

使用JSTL在視圖中顯示模型 .....72

定義通用WebContentInterceptor ......82

使用AngularJS設計客戶端MVC模式 .....88


3 Java持久化與實體.......100

引言 ...100

在Spring中配置Java持久化API .....101

定義有用的EJB3實體和關系 .....105

使用JPA與Spring Data JPA ....... 115


4 為無狀態架構構建REST.API....122

引言 ...122

綁定請求與編排響應 .......123

配置內容協商(JSON與XML等) .....133

添加分頁、過濾器與排序功能 .....138

全局處理異常 .149

使用Swagger生成文檔與公開API.....156


5 使用Spring.MVC進行認證....163

引言 ...163

配置Apache HTTP服務器來代理Tomcat服務器 ..163

修改用戶和角色以適應Spring Security ....172

基于BASIC的認證方式......183

第三方OAuth2認證 ........193

在REST環境中保存認證信息...... 211

服務與控制器授權 .......220


6 實現HATEOAS......235

引言 ...235

將DTO改造成Spring HATEOAS資源 .....236

為超媒體驅動的API創建鏈接 .....244

JPA實體的暴露策略 .......252

通過OAuth從第三方API獲取數據....259


7 開發CRUD操作與校驗.....266


引言 ...266

為所有HTTP方法擴展REST處理程序....267

使用Bean Validation校驗資源 ......278

REST消息與內容的國際化......292

使用HTML5和AngularJS校驗客戶端表單 ...302


8 通過WebSocket與STOMP進行通信...308

引言 ...308

通過基于SockJS的STOMP使社交事件流媒體化 ..309

使用RabbitMQ作為多協議消息代理 ....322

將任務放入RabbitMQ并通過AMQP消費任務...328

通過Spring Session和Redis保證消息安全 ....334


9 測試與故障排除. .......351

引言 ...351

通過Flyway實現數據庫遷移自動化 .....352

使用Mockito和Maven Sure.re進行單元測試 ...357

使用Cargo、Rest-assured和Maven Failsafe進行集成測試 ........364

在集成測試中注入Spring Bean .....373

使用Log4j2記錄日志的現代應用 ....377
序: