官术网_书友最值得收藏!

要想了解Spring的整體狀況,只需查看完整版本的Spring Initializr Web表單上的那些復(fù)選框列表。它列出了100多個(gè)可選的依賴項(xiàng),所以我不會(huì)在這里列出所有選項(xiàng),也不會(huì)提供截圖,但我鼓勵(lì)你去看一看。同時(shí),在這里我會(huì)簡(jiǎn)單介紹一些重點(diǎn)的項(xiàng)目。

如你所料,Spring核心框架是Spring領(lǐng)域中一切的基礎(chǔ),提供了核心容器和依賴注入框架。另外,它還提供了一些其他重要的特性。

其中有一項(xiàng)就是Spring MVC,也就是Spring的Web框架。你已經(jīng)看到了如何使用Spring MVC來編寫控制器類以處理Web請(qǐng)求。但是,你還沒看到的是,Spring MVC還能用來創(chuàng)建REST API,以生成非HTML的輸出。在第2章,我會(huì)更深入地介紹Spring MVC。在第7章,我們會(huì)重新學(xué)習(xí)如何使用Spring MVC來創(chuàng)建REST API。

Spring核心框架還提供了一些對(duì)數(shù)據(jù)持久化的基礎(chǔ)支持,尤其是基于模板的JDBC支持。在第3章,我們會(huì)看到如何使用JdbcTemplate。

Spring還添加了對(duì)反應(yīng)式(reactive)風(fēng)格編程的支持,其中包括名為Spring WebFlux的新反應(yīng)式Web框架,這個(gè)框架大量借鑒了Spring MVC。在第3部分中,我們會(huì)學(xué)習(xí)Spring反應(yīng)式編程模型,并在第12章專門學(xué)習(xí)Spring WebFlux。

我們已經(jīng)看到了Spring Boot的很多優(yōu)勢(shì),包括starter依賴和自動(dòng)配置。在本書中,我們會(huì)盡可能多地使用Spring Boot,并避免任何形式的顯式配置,除非顯式配置是絕對(duì)必要的。除了starter依賴和自動(dòng)配置,Spring Boot還提供了大量其他有用的特性:

Actuator能夠洞察應(yīng)用運(yùn)行時(shí)的內(nèi)部工作狀況,包括指標(biāo)、線程dump信息、應(yīng)用的健康狀況以及應(yīng)用程序可用的環(huán)境屬性;

靈活的環(huán)境屬性規(guī)范;

在核心框架的測(cè)試輔助功能之上,提供了對(duì)測(cè)試的額外支持。

除此之外,Spring Boot還提供了一個(gè)基于Groovy腳本的編程模型,稱為Spring Boot CLI[2]。使用Spring Boot CLI,我可以將整個(gè)應(yīng)用程序編寫為Groovy腳本的集合,并通過命令行運(yùn)行它們。我不會(huì)花太多時(shí)間介紹Spring Boot CLI,但是當(dāng)它匹配我們的需求時(shí),會(huì)偶爾提及它。

Spring Boot已經(jīng)成為Spring開發(fā)中不可或缺的一部分,很難想象如果沒有它該如何開發(fā)Spring應(yīng)用程序。因此,本書采用了以Spring Boot為核心的視角。當(dāng)我介紹Spring Boot所做的事情的時(shí)候,你可能會(huì)發(fā)現(xiàn)我使用了Spring這個(gè)表述。

盡管Spring核心框架提供了基本的數(shù)據(jù)持久化支持,但Spring Data提供了非常令人驚嘆的功能:將應(yīng)用程序的數(shù)據(jù)存儲(chǔ)庫(repository)定義為簡(jiǎn)單的Java接口,在定義存儲(chǔ)和檢索數(shù)據(jù)的方法時(shí)使用一種特定的命名約定即可。

此外,Spring Data能夠處理多種不同類型的數(shù)據(jù)庫,包括關(guān)系型數(shù)據(jù)庫(通過JDBC或JPA實(shí)現(xiàn))、文檔數(shù)據(jù)庫(Mongo)、圖數(shù)據(jù)庫(Neo4j)等。在第3章,我們會(huì)使用Spring Data為Taco Cloud應(yīng)用程序創(chuàng)建存儲(chǔ)庫。

應(yīng)用程序的安全性一直是重要的話題,而且正在變得越來越重要。幸運(yùn)的是,Spring有一個(gè)健壯的安全框架,名為Spring Security。

Spring Security解決了應(yīng)用程序通用的安全性需求,包括身份驗(yàn)證、授權(quán)和API安全性。Spring Security的范圍太大,在本書中無法得到充分的介紹,但是我們會(huì)在第5章和第12章中討論一些最常見的使用場(chǎng)景。

一定程度上,大多數(shù)應(yīng)用程序都需要與其他應(yīng)用甚至本應(yīng)用中的其他組件集成。在這方面,有一些應(yīng)用程序集成的模式來解決這些需求。Spring Integration和Spring Batch為基于Spring的應(yīng)用程序提供了這些模式的實(shí)現(xiàn)。

Spring Integration解決了實(shí)時(shí)集成問題,在實(shí)時(shí)集成中,數(shù)據(jù)在可用時(shí)馬上就會(huì)得到處理。相反,Spring Batch解決的則是批處理集成的問題,在此過程中,數(shù)據(jù)可以收集一段時(shí)間,直到某個(gè)觸發(fā)器(可能是一個(gè)時(shí)間觸發(fā)器)發(fā)出信號(hào)表明是時(shí)候處理批量數(shù)據(jù)了,才會(huì)得到處理。我們會(huì)在第10章中研究Spring Integration。

應(yīng)用程序開發(fā)領(lǐng)域正在進(jìn)入新的時(shí)代,我們不再將應(yīng)用程序作為一個(gè)部署單元的單體應(yīng)用來開發(fā),而是使用由微服務(wù)組成的多個(gè)獨(dú)立部署單元來組合形成應(yīng)用程序。

微服務(wù)是一個(gè)熱門話題,解決了開發(fā)期和運(yùn)行期的一些實(shí)際問題。然而,在這樣做的過程中,它也面臨著自己所帶來的挑戰(zhàn)。這些挑戰(zhàn)將由Spring Cloud直面解決,Spring Cloud是使用Spring開發(fā)云原生應(yīng)用程序的一組項(xiàng)目。

Spring Cloud覆蓋了很多領(lǐng)域,這本書不可能面面俱到。關(guān)于對(duì)Spring Cloud的完整介紹,我推薦閱讀Thomas Vitale的Cloud Native Spring in Action(Manning,2020年)。

Spring一個(gè)相對(duì)較新的進(jìn)展是Spring Native項(xiàng)目。這個(gè)實(shí)驗(yàn)性的項(xiàng)目能夠使用GraalVM原生鏡像編譯器將Spring Boot項(xiàng)目編譯成原生可執(zhí)行的文件,從而使鏡像的啟動(dòng)速度顯著加快,并且占用更小的空間。

關(guān)于Spring Native的更多信息,參見GitHub網(wǎng)站的spring-projects-experimental/spring- native代碼庫。

主站蜘蛛池模板: 新津县| 莱西市| 正蓝旗| 宝坻区| 双桥区| 林口县| 延吉市| 南阳市| 财经| 平潭县| 漳平市| 阿瓦提县| 清远市| 明星| 绥中县| 岐山县| 青浦区| 特克斯县| 女性| 肥城市| 乌苏市| 永济市| 浪卡子县| 双峰县| 正宁县| 曲沃县| 海安县| 象州县| 大城县| 姜堰市| 黄陵县| 武山县| 台前县| 江门市| 白河县| 蒙阴县| 万宁市| 安顺市| 曲水县| 务川| 桦甸市|