從2003年發布至今,Spring 已成為目前最受歡迎的企業級 Java 應用程式開發框架,數以百萬的來自世界各地的開發人員使用 Spring 框架來創建代碼。
在整個Spring生態系統中,Spring、Spring Boot和所有其他項目的每個版本都發布了令人興奮的新功能,重新點燃了開發應用程式的樂趣。
Spring 5.0和Spring Boot 2.0的發布達到了一個重要的里程碑。對Java技術人來說,Spring已然是當下最流行的框架之一。
要說學習Spring最佳書籍,異步君就必須給大家推薦《Spring實戰》了!
《Spring實戰》為何值得推薦
推薦理由1:這是一本經典教程,銷量破10萬,好評高達99%。
這本暢銷全球的Spring學習和實踐指南,翻譯至今,已出版4個版本,累計銷售10萬冊,好評高達99%。
《Spring實戰(第4版)》在豆瓣上獲得8.2的高分,無論從銷量還是好評來看這都是一本經典教程。
推薦理由2:第5版上市,涵蓋了Spring 5.0和Spring Boot 2.0里程碑式的更新。
《Spring實戰(第5版)》搶讀版已經上線,針對Spring 5 進行了全面升級,結合了當下Spring Cloud和微服務開發等熱門技術話題,為Java技術人員提供了有一實踐指南!
Spring 5的主要功能是對反應式編程的支持,包括Spring WebFlux。這是一個全新的反應式Web框架,借鑑了Spring MVC的編程模型,允許開發人員創建伸縮性更好且耗用更少線程的Web應用程式。至於Spring應用的後端,最新版本的Spring Data支持創建反應式、非阻塞的數據repository。所有這些都構建在Reactor項目之上,Reactor是一個用於處理反應式類型的Java庫。
除了Spring 5新的反應式編程特性之外,Spring Boot 2提供了比以前更多的自動配置支持,以及一個完全重新設計的Actuator,用於探查和操作正在運行的應用。
更重要的是,當開發人員希望將單體應用拆分為分散的微服務時,SpringCloud提供了一些工具,使配置和發現微服務變得容易,並增強了微服務的功能,使它們更能抵禦失敗。
值得一提的是,《Spring實戰(第5版)》涵蓋了所有的這些功能,甚至更多!如果你是經驗豐富的老手,《Spring實戰(第5版)》可以作為指南,指導你去學習Spring提供的新功能;如果你是Spring新手,那麼現在是行動起來的最佳時機,本書的前幾章會讓你快速上手!
推薦理由3:五大部分內容,可快速入門,也可作為參考指南。
本書是一本經典而實用的暢銷Spring學習指南。
可以讓讀者學會使用Spring框架、Spring Boot以及Spring生態系統中各種輔助成員構建令人讚嘆的應用程式。
本書首先介紹如何使用Spring和Spring Boot開發基於Web、以資料庫作為後端的Java應用;隨後進行必要的擴展,展現如何與其他應用進行集成、使用反應式類型進行編程,以及將應用拆分為離散的微服務;最後討論如何準備應用的部署。
第5版涵蓋了Spring 5.0和Spring Boot 2.0里程碑式的更新。全書分為5個部分,共19章。
第1部分涵蓋構建Spring應用的基礎話題。
- 第1章介紹Spring和Spring Boot以及如何初始化Spring項目。在本章中,我們邁出構建Spring應用的第一步,在本書後續各章中,我們會對這個應用進行擴展。
- 第2章討論如何使用SpringMVC構建應用的Web層。在本章中,我們將會構建處理Web請求的控制器以及在瀏覽器中渲染信息的視圖。
- 第3章會深入探討Spring應用的後端,在這裡數據會持久化到關係型資料庫中。
- 在第4章中,我們會使用SpringSecurity認證用戶並防止未認證的用戶訪問應用。
- 第5章介紹如何使用SpringBoot的配置屬性功能來配置Spring應用。我們還會學習如何使用profile選擇性地應用配置。
第2部分討論如何將Spring應用與其他應用進行集成。
- 第6章延續第2章對Spring MVC的討論,我們將會學習如何在Spring中編寫REST API。
- 第7章討論和第6章相對立的主題,展現Spring應用如何消費REST API。
- 第8章會討論如何使用異步通信技術讓Spring應用發送和接收消息,這裡會用到Java Message Service、RabbitMQ或Kafka。
- 第9章討論如何使用SpringIntegration進行聲明式的應用集成。
第3部分探討Spring對反應式編程提供的全新支持。
- 第10章介紹Reactor項目。這是一個反應式編程庫,支撐了Spring 5的反應式特性。
- 第11章重新探討RESTAPI開發,介紹全新的Web框架Spring WebFlux。該框架借用了很多Spring MVC的理念,但是為Web開發提供了新的反應式模型。
- 第12章將會看一下如何使用SpringData編寫反應式數據持久化,我們將會讀取和寫入Cassandra與Mongo資料庫。
第4部分將會拆分單體應用模型,介紹Spring Cloud和微服務開發。
- 第13章會深入介紹服務發現,組合使用Spring和Netflix的註冊中心實現Spring微服務的註冊和發現。
- 第14章將展現如何在配置伺服器中實現中心化的應用配置,從而實現跨微服務共享配置。
- 第15章會介紹Hystrix的斷路器模式。它能夠讓微服務在面臨失敗時更有彈性。
在第5部分中,我們將會討論如何做好將應用投入生產環境的準備,並看一下如何進行部署。
- 第16章會介紹SpringBoot Actuator。它是Spring Boot的一個擴展,通過REST端點的形式暴露Spring應用內部的運行狀況。
- 第17章將會介紹如何使用SpringBoot Admin。它是構建在Actuator之上的一個用戶友好的基於瀏覽器的管理應用。
- 第18章將會討論如何將Springbean暴露為JMX MBean以及如何消費它們。
- 在第19章中,我們會看到如何將Spring應用部署到各種生產環境中。
通常來講,剛剛接觸Spring的開發人員應該從第1章開始,並按順序閱讀每一章;經驗豐富的Spring開發人員可能更願意在任何感興趣的時候參與進來。
作者:克雷格·沃斯(Craig Walls)
克雷格·沃斯(Craig Walls)是Pivotal的首席工程師。他是Spring框架的熱心推動者,經常在本地用戶組和會議上發言,撰寫關於Spring的文章。在不琢磨代碼的時候,Craig正在計劃去迪士尼世界或迪士尼樂園的下一次旅行,他希望儘可能多地陪伴他的妻子和兩個女兒。
譯者:張衛濱
軟體工程師,InfoQ社區編輯,熟悉Java語言,對Java開源框架有一定研究,入Spring、Hibernate以及Eclipse等,熟悉Web前端開發,了解相關技術以及jQuery、Dojo、ExtJs等框架,目前主要從事企業級軟體的開發。
Spring 到底有何魅力?
Spring 框架的核心特性是可以用於開發任何 Java 應用程式,但是在 Java EE 平台上構建 web 應用程式是需要擴展的。Spring 框架的目標是使 J2EE 開發變得更容易使用,通過啟用基於 POJO 編程模型來促進良好的編程實踐。
Spring發布至今已超過15年了,我們現在開發應用的方式和1年前、5年前、10年前都是不同的,更別提15年前了。當時,最常見的應用形式是基於瀏覽器的Web應用,後端由關係型資料庫作為支撐。
儘管這種形式的開發依然有它的價值,Spring也為這種應用提供了良好的支持,但是我們現在感興趣的還包括如何開發面向雲的由微服務組成的應用,這些應用會將數據保存到各種類型的資料庫中。另外一個嶄新的關注點是反應式編程,它致力於通過非阻塞操作提供更好的擴展性並提升性能。
隨著軟體開發的發展,Spring框架也在不斷變化,以解決現代應用開發中的問題,其中就包括微服務和反應式編程。Spring還通過引入Spring Boot簡化自己的開發模型。
不管你是開發資料庫作為支撐的簡單Web應用,還是圍繞微服務構建一個現代應用,Spring框架都能幫助你達成目標。
那Spring到底是什麼呢?
Spring的核心是提供了一個容器(container),通常被稱為Spring應用上下文(Spring application context),它們會創建和管理應用組件。這些組件也可以被稱為bean,會在Spring應用上下文中裝配在一起,從而形成一個完整的應用程式。這就像磚塊、砂漿、木材、管道和電線組合在一起,形成一棟房子似的。
將bean裝配在一起的行為是通過一種基於依賴注入(dependency injection,DI)的模式實現的。此時,組件不會再去創建它所依賴的組件並管理它們的生命周期,使用依賴注入的應用依賴於單獨的實體(容器)來創建和維護所有的組件,並將其注入到需要它們的bean中。通常,這是通過構造器參數和屬性訪問方法來實現的。
舉例來說,假設在應用的眾多組件中,有兩個是我們需要處理的:庫存服務(用來獲取庫存水平)和商品服務(用來提供基本的商品信息)。商品服務需要依賴於庫存服務,這樣它才能提供商品的完整信息。下圖即闡述這些bean和Spring應用上下文之間的關係。
應用組件通過Spring的應用上下文來進行管理並實現互相注入
在核心容器之上,Spring及其一系列的相關庫提供了Web框架、各種持久化可選方案、安全框架、與其他系統集成、運行時監控、微服務支持、反應式編程以及眾多現代應用開發所需的特性。
了解了這麼多,是不是迫不及待想和10萬+Java技術人一起學習Spring了?《Spring實戰(第5版)》電子書已經上線,針對Spring 5 進行了全面升級,一起來學習吧!
《Spring實戰(第5版)》
《Spring實戰(第5版)》搶讀版正式上線!什麼是搶讀版呢?就是在圖書出版前2-3個月搶先閱讀圖書的原創稿件,並同時可以購買本書的紙質版,創作期間可以與本書作者交流互動。
本書既適合剛開始學習Spring Boot和Spring框架的Java開發人員快速上手,也適合經驗豐富的Spring開發人員學習Spring的新特性,尤其適用於企業級Java開發人員。
-END-