Spring開發(fā)者的Quarkus實戰(zhàn)
定 價:¥119
中 教 價:¥71.40 (6.00折)
庫 存 數(shù): 0
叢 書 名:計算機前沿技術(shù)叢書
Quarkus框架是一個來自Red Hat公司的Kubernetes Native Java框架平臺。本書主要介紹Spring開發(fā)者如何在Quarkus框架上進行開發(fā)。全書通過比較Quarkus框架和Spring框架,介紹兩者在原理、設(shè)計、開發(fā)、擴展和部署上的差異,并分別通過源碼案例來講解兩者在Web開發(fā)、數(shù)據(jù)訪問開發(fā)、消息應(yīng)用開發(fā)、安全應(yīng)用開發(fā)、響應(yīng)式開發(fā)和集成第三方框架開發(fā)的差別,整理出Quarkus整合Spring Cloud、Consul和Dubbo等微服務(wù)架構(gòu)的方案和實現(xiàn)。*后講述Spring應(yīng)用如何遷移至Quarkus框架的策略和步驟。《Spring開發(fā)者的Quarkus實戰(zhàn)》是一本開發(fā)指南,原理結(jié)合實踐,基本覆蓋了現(xiàn)有云原生開發(fā)的大部分應(yīng)用場景,共有50多個源碼案例(1萬多行代碼),并以圖片、源碼、文字說明相結(jié)合的方式詳細(xì)講解。《Spring開發(fā)者的Quarkus實戰(zhàn)》難度為中級,但對初級和高級層次讀者也有一定啟發(fā)作用,尤其適合希望在云原生領(lǐng)域繼續(xù)探索的Spring開發(fā)者閱讀。
1.案例豐富。包含覆蓋云原生大部分應(yīng)用場景的50余個實戰(zhàn)案例。2.操作性強。附贈1萬多行的代碼,可拿來即用。3.作者權(quán)威。作者系教授級高工,國家認(rèn)證架構(gòu)設(shè)計師、系統(tǒng)分析師和信息項目管理師。
Spring框架及其全家桶系列是一個龐大的生態(tài)體系。在國內(nèi),Java開發(fā)者幾乎都會使用Spring框架。Spring框架似乎成了國內(nèi)Java開發(fā)事實上的標(biāo)準(zhǔn)。離開了Spring框架,很多Java開發(fā)者甚至都不會編寫程序了。事實上,Java的世界很大,Spring框架雖然在其領(lǐng)域名列前茅,但也只是眾多Java編程框架中的一種。現(xiàn)在已經(jīng)進入了云原生時代,應(yīng)用程序可使用微服務(wù)架構(gòu)快速、高效地響應(yīng)請求,以便在虛擬機或容器等不穩(wěn)定的環(huán)境中運行,并支持快速開發(fā)。Java以及流行的Java運行時框架有時被認(rèn)為不如Node.js和Go等語言中的運行時框架,使Java這門開發(fā)語言受到了挑戰(zhàn)。在這種情況下,Java語言必須進行革新。Quarkus框架就是Java語言革新的產(chǎn)物,是一個天生就基于云原生Java的開發(fā)框架。目前,Quarkus已經(jīng)風(fēng)靡Java社區(qū)。Quarkus把Node.js開發(fā)的生產(chǎn)力與Go開發(fā)的速度和性能相結(jié)合,使Java開發(fā)人員能夠構(gòu)建針對云原生平臺和體系結(jié)構(gòu)的解決方案。許多Java開發(fā)人員已經(jīng)將Quarkus框架視為Spring框架的替代品,所以本書將展示Quarkus框架和Spring框架之間關(guān)鍵的區(qū)別,同時也強調(diào)相似之處。這些差異使Quarkus成為面向云原生平臺和架構(gòu)[如微服務(wù)架構(gòu)、事件驅(qū)動架構(gòu)、Serverless(無服務(wù)器)、FaaS(功能即服務(wù))、邊緣計算和物聯(lián)網(wǎng)]的Java應(yīng)用程序的理想運行時框架。1. 本書定位《Spring開發(fā)者的Quarkus實戰(zhàn)》是一本培訓(xùn)手冊,簡單而言,就是讓Spring開發(fā)者快速、高效和精準(zhǔn)地掌握Quarkus框架的開發(fā)。本書以理論結(jié)合實踐的方式來撰寫,其中實踐占九成。所以,本書是一本實踐和可操作性較強的書籍,可以作為Spring開發(fā)者學(xué)習(xí)Quarkus框架的教材。《Spring開發(fā)者的Quarkus實戰(zhàn)》以Spring框架和Quarkus框架編程案例的對比為基礎(chǔ),對案例進行講解和說明。對于各個Quarkus案例,作者通過將圖片、文字說明等相結(jié)合來進行解析。其中,圖片能很好地體現(xiàn)作者的總體思路,文字能準(zhǔn)確說明作者的意圖。為什么作者會選擇Web開發(fā)、數(shù)據(jù)訪問開發(fā)、消息應(yīng)用開發(fā)、安全應(yīng)用開發(fā)、整合、微服務(wù)架構(gòu)等案例并進行對比?這源于作者在一線實踐工作中的經(jīng)驗。試想一下,要開發(fā)一個云原生微服務(wù)應(yīng)用,首先需要Web支持,然后是數(shù)據(jù)支持,最后就是不可或缺的安全框架。有這些組件,基本上就完成了一個云原生微服務(wù)系統(tǒng)的大部分功能。如果涉及異步處理或事件處理,就需要再加上一個消息組件或流組件。上述內(nèi)容基本上都被作者精選的案例所囊括。作者還整合了幾個基于Quarkus框架的Spring框架微服務(wù)架構(gòu)解決方案。這些案例,對于通常意義上的云原生微服務(wù)應(yīng)用,基本上可以達(dá)到80%~90%的覆蓋。前言Spring開發(fā)者的Quarkus實戰(zhàn)2. 如何使用本書《Spring開發(fā)者的Quarkus實戰(zhàn)》中每個Spring框架和Quarkus框架的對比都有兩個應(yīng)用案例,一個是Spring程序案例,另一個是Quarkus程序案例。Spring程序案例講解時會簡單一些,Quarkus程序案例的講解比較詳細(xì)。介紹Quarkus程序案例的總體思路是這樣的:首先概述目的、組成、環(huán)境(上下文);其次重點分析要點及其如何實現(xiàn);最后給出驗證的實現(xiàn),讀者花費非常少的時間和精力就能進行具體的驗證。《Spring開發(fā)者的Quarkus實戰(zhàn)》是一本關(guān)于軟件編程的書籍。編程是一項實踐性非常強的技能。本書的每個案例都有驗證環(huán)節(jié),目的就是讓讀者去實踐操作。針對這些操作環(huán)節(jié),作者還準(zhǔn)備了一些驗證代碼,讀者可查看實操的結(jié)果是否與當(dāng)初的設(shè)想一致。作者也篤信:紙上得來終覺淺,絕知此事要躬行。這也是編程的真諦。在開始具體的案例旅程之前,強烈建議讀者首先閱讀2.7節(jié)具體比較案例的說明,這是各個具體案例的總體說明,對所有案例的應(yīng)用場景、原則和規(guī)則進行了說明。讀者明白了這些指導(dǎo)和原則,就能更輕松、方便、高效地理解各個案例講述的核心含義,從而達(dá)到事半功倍的效果。3. 讀者對象《Spring開發(fā)者的Quarkus實戰(zhàn)》適合對Quarkus感興趣,并且想獲得更多Quarkus知識或者實現(xiàn)更多想法的IT工作者。1)Spring初級讀者,可以依據(jù)自己在Web、Data和Message方面的開發(fā)經(jīng)驗,迅速了解Quarkus如何實現(xiàn)這方面的開發(fā)。2)Spring中級讀者,如具有豐富開發(fā)經(jīng)驗的Spring軟件開發(fā)工程師等,可以在本書中獲得更寬廣和更全面的Quarkus認(rèn)識,然后構(gòu)建安全、集成、伸縮性強和高容錯的微服務(wù)架構(gòu)應(yīng)用。3)Spring高級讀者,如具有豐富經(jīng)驗的Spring架構(gòu)師和分析師,可以基于Quarkus的云原生特性,構(gòu)建響應(yīng)式、高可靠、高可用、維護性強的云原生架構(gòu)體系。Spring開發(fā)者幾乎可以零成本地掌握一套Java上的云原生開發(fā)工具。Quarkus上手容易,對于一些具有Spring開發(fā)工作經(jīng)驗的人來說,可以非常快地掌握Quarkus的使用。作者認(rèn)為,不重復(fù)發(fā)明輪子這句話同樣也適合Quarkus。4. 勘誤和支持由于篇幅原因,本書所列的代碼都進行了格式處理,要正式運行程序,應(yīng)以本書附帶的源碼文件為準(zhǔn),讀者可參考封底說明的方式獲取。在撰寫《Spring開發(fā)者的Quarkus實戰(zhàn)》的過程中參考了很多資料和文獻。書中所列出的軟件平臺和規(guī)范,其參
任鋼,教授級高工,國家認(rèn)證的架構(gòu)設(shè)計師、系統(tǒng)分析師和信息項目管理師。有20余年的軟件和架構(gòu)經(jīng)驗,承擔(dān)過上百個軟件項目的規(guī)劃、設(shè)計、開發(fā)和交付。現(xiàn)在某互聯(lián)科技公司擔(dān)任首席架構(gòu)師,主要業(yè)務(wù)方向是提供企業(yè)數(shù)字化轉(zhuǎn)型、行業(yè)互聯(lián)網(wǎng)(物聯(lián)網(wǎng))、云原生體系、微服務(wù)架構(gòu)等咨詢服務(wù)。
前言第1章 云原生、Spring框架和Quarkus框架概述/1.1 Java的歷史/1.2 云原生基本概念/1.3 Spring框架介紹/1.4 Quarkus框架概述/1.5 Quarkus框架給Java開發(fā)者帶來的便捷和實惠/1.6 本章小結(jié)/第2章 Quarkus框架和Spring框架比較初探/2.1 兩種框架的設(shè)計和理念比較/2.1.1 Spring框架的架構(gòu)和核心概念/2.1.2 Quarkus框架的架構(gòu)和核心概念/2.2 兩種框架的性能比較/2.3 兩種框架的應(yīng)用比較/2.3.1 兩種框架的依賴注入(DI)和AOP比較/2.3.2 兩種框架的腳手架工程比較/2.3.3 兩種框架整合第三方框架比較/2.3.4 兩種框架的響應(yīng)式編程比較/2.4 兩種框架的程序啟動過程比較/2.4.1 Spring框架的程序啟動模式/2.4.2 Quarkus框架的程序啟動模式/2.5 兩種框架的開發(fā)過程模式比較/2.5.1 Spring框架開發(fā)過程模式/2.5.2 Quarkus框架的實時編碼功能/2.6 兩種框架的云原生部署步驟/2.6.1 Spring框架云原生部署步驟/2.6.2 Quarkus框架云原生部署步驟/2.7 具體比較案例的說明/2.7.1 應(yīng)用案例簡要介紹/2.7.2 應(yīng)用案例相關(guān)的軟件安裝和需遵循的標(biāo)準(zhǔn)規(guī)范/2.7.3 應(yīng)用案例演示和調(diào)用/2.7.4 應(yīng)用案例解析說明/2.8 本章小結(jié)/第3章 Web應(yīng)用開發(fā)/3.1 編寫JAX-RS程序/3.1.1 Spring和Quarkus實現(xiàn)JAX-RS之異同/3.1.2 Spring實現(xiàn)JAX-RS應(yīng)用/3.1.3 Quarkus實現(xiàn)JAX-RS應(yīng)用/3.1.4 Quarkus實現(xiàn)REST客戶端應(yīng)用/3.2 創(chuàng)建響應(yīng)式JAX-RS程序/3.2.1 Spring和Quarkus實現(xiàn)響應(yīng)式JAX-RS之異同/3.2.2 Spring創(chuàng)建響應(yīng)式JAX-RS程序/3.2.3 Quarkus創(chuàng)建響應(yīng)式JAX-RS程序/3.3 增加OpenAPI和SwaggerUI功能/3.3.1 OpenAPI和SwaggerUI簡介/3.3.2 Spring增加OpenAPI和SwaggerUI功能/3.3.3 Quarkus增加OpenAPI和SwaggerUI功能/3.4 編寫Quarkus的Servlet應(yīng)用/3.4.1 Servlet規(guī)范/3.4.2 Quarkus實現(xiàn)Servlet應(yīng)用/3.5 本章小結(jié)/第4章 數(shù)據(jù)訪問應(yīng)用/4.1 實現(xiàn)ORM數(shù)據(jù)持久化/4.1.1 使用JPA實現(xiàn)數(shù)據(jù)持久化/4.1.2 創(chuàng)建響應(yīng)式數(shù)據(jù)訪問實現(xiàn)數(shù)據(jù)持久化/4.1.3 使用MyBatis實現(xiàn)數(shù)據(jù)持久化/4.1.4 使用Java事務(wù)(Transaction)/4.2 實現(xiàn)與Redis的緩存處理/4.2.1 Redis簡介及安裝/4.2.2 使用Redis Client實現(xiàn)緩存處理/4.2.3 實現(xiàn)響應(yīng)式Redis Client緩存/4.3 NoSQL應(yīng)用/4.3.1 MongoDB簡介/4.3.2 創(chuàng)建MongoDB程序/4.3.3 創(chuàng)建響應(yīng)式MongoDB程序/4.4 本章小結(jié)/第5章 消息事件驅(qū)動應(yīng)用/5.1 基于JMS消息處理/5.1.1 Artemis安裝/5.1.2 Spring整合JMS實現(xiàn)說明/5.1.3 Quarkus整合JMS實現(xiàn)說明/5.2 事件消息處理/5.2.1 Spring和Quarkus整合事件消息異同/5.2.2 Spring整合事件消息實現(xiàn)說明/5.2.3 Quarkus整合事件消息實現(xiàn)說明/5.3 調(diào)用Apache Kafka消息流/5.3.1 Spring調(diào)用Kafka消息流/5.3.2 Quarkus調(diào)用Kafka消息流/5.4 響應(yīng)式事件消息流處理/5.4.1 響應(yīng)式事件消息概述/5.4.2 Spring和Quarkus整合響應(yīng)式事件消息異同/5.4.3 Spring整合響應(yīng)式事件消息實現(xiàn)說明/5.4.4 Quarkus整合響應(yīng)式事件消息實現(xiàn)說明/5.5 本章小結(jié)/第6章 構(gòu)建安全應(yīng)用/6.1 微服務(wù)Security方案概述/6.2 Quarkus Security和Spring Security異同/6.2.1 Spring框架的Security架構(gòu)簡介/6.2.2 Quarkus框架的Security架構(gòu)簡介/6.3 Spring Security解決方案/6.3.1 Spring的Apache Shiro案例講解/6.3.2 Spring Security案例講解/6.4 Quarkus Security解決方案/6.4.1 Quarkus安全解決方案概述/6.4.2 Quarkus框架SSL安全認(rèn)證/6.4.3 Quarkus框架basic安全認(rèn)證/6.4.4 使用JWT來加密令牌/6.4.5 采用Keycloak實現(xiàn)OIDC認(rèn)證和授權(quán)/6.4.6 采用Keycloak實現(xiàn)OAuth 2.0認(rèn)證和授權(quán)/6.5 本章小結(jié)/第7章 Quarkus框架擴展Spring框架的功能/7.1 Quarkus框架整合Spring框架的DI功能/7.1.1 Spring框架的依賴注入(DI)概述及其Quarkus轉(zhuǎn)換/7.1.2 編寫案例代碼/7.1.3 驗證程序/7.1.4 Quarkus轉(zhuǎn)換Spring的注解內(nèi)容/7.2 Quarkus框架整合Spring框架的Web功能/7.2.1 Spring Web框架/7.2.2 編寫案例代碼/7.2.3 驗證程序/7.2.4 原理說明/7.3 Quarkus框架整合Spring框架的Data功能/7.3.1 Spring Data框架介紹/7.3.2 編寫案例代碼/7.3.3 驗證程序/7.3.4 擴展說明/7.4 Quarkus框架整合Spring框架的Security功能/7.4.1 Spring Security框架介紹/7.4.2 編寫案例代