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

1.2 Vue.js+Spring Boot全棧開發(fā)周邊技術(shù)棧的組成

為了構(gòu)建大型Web應(yīng)用,除常使用Vue.js+Spring Boot全棧開發(fā)架構(gòu)的兩種核心技術(shù)外,業(yè)界還常使用Naive UI、md-editor-v3、Nginx、Spring Security、Spring MVC、Spring Data、Hibernate、H2、MySQL等周邊技術(shù)。

1.2.1 Naive UI

Naive UI是一款支持Vue.js 3的前端UI框架,有超過(guò)70個(gè)組件,可有效減少代碼的編寫量。

Naive UI全量使用TypeScript編寫,因此可以和TypeScript項(xiàng)目無(wú)縫銜接。

Naive UI具備如下特性。

  • 比較完整。Naive UI有超過(guò)70個(gè)組件,能使用戶少寫一點(diǎn)代碼,且它們?nèi)贾С諸ree Shaking(搖樹優(yōu)化)。
  • 主題可調(diào)。Naive UI提供使用TypeScript構(gòu)建的先進(jìn)的類型安全主題系統(tǒng)。用戶只需要提供一個(gè)樣式覆蓋的對(duì)象,剩下的操作都交給Naive UI完成即可。
  • 使用TypeScript。Naive UI使用TypeScript編寫而成,可以與TypeScript無(wú)縫銜接。順便一提,它不需要導(dǎo)入任何CSS代碼就能讓組件正常工作。
  • 界面渲染速度快。select、tree、transfer、table、cascader等組件都支持按需顯示可以根據(jù)用戶的滾動(dòng)渲染可視區(qū)域內(nèi)的一部分列表元素,而不必渲染所有列表項(xiàng)。

在Vue.js+Spring Boot全棧開發(fā)架構(gòu)中,Naive UI將與Vue.js一起構(gòu)建炫酷的UI。

1.2.2 md-editor-v3

Markdown是一種可使用普通文本編輯器編寫的標(biāo)記語(yǔ)言。通過(guò)簡(jiǎn)單的標(biāo)記語(yǔ)法,它可以使普通文本內(nèi)容具有一定的格式。因此在內(nèi)容管理類的應(yīng)用中,經(jīng)常采用Markdown編輯器來(lái)編輯文本內(nèi)容。

md-editor-v3是一款Markdown插件,能夠?qū)arkdown格式的內(nèi)容渲染成HTML(Hypertext Markup Language,超文本標(biāo)記語(yǔ)言)格式的內(nèi)容。最為重要的是,md-editor-v3是支持Vue.js 3的,因此其與Vue.js 3應(yīng)用有著良好的兼容性。

在Vue.js+Spring Boot全棧開發(fā)架構(gòu)中,md-editor-v3將與Vue.js一起構(gòu)建內(nèi)容編輯器。

1.2.3 Nginx

在大型Web應(yīng)用中,經(jīng)常使用Nginx作為Web服務(wù)器。

Nginx是免費(fèi)的、開源的、高性能的HTTP服務(wù)器和反向代理,同時(shí)也是IMAP(Internet Message Access Protocol,因特網(wǎng)消息訪問(wèn)協(xié)議)/POPv3(Post Office Protocol version 3,郵局協(xié)議第3版)代理服務(wù)器。Nginx以其高性能、穩(wěn)定性、豐富的功能集、簡(jiǎn)單的配置和低資源消耗而聞名。

Nginx是市面上為解決C10k問(wèn)題而編寫的僅有的幾個(gè)服務(wù)器之一。與傳統(tǒng)服務(wù)器不同,Nginx不依賴于線程來(lái)處理請(qǐng)求。相反,它使用可擴(kuò)展的事件驅(qū)動(dòng)(異步)架構(gòu),這種架構(gòu)在高負(fù)載場(chǎng)景下使用小的,但更重要的是可預(yù)測(cè)的內(nèi)存量。即使在需要處理數(shù)千個(gè)并發(fā)請(qǐng)求的場(chǎng)景下,用戶仍然可以從Nginx的高性能和占用內(nèi)存少等方面獲益。可以說(shuō)Nginx在各個(gè)場(chǎng)景都能使用,從最小的VPS(Virtual Private Server,虛擬專用服務(wù)器)一直到大型服務(wù)器集群。

在Vue.js+Spring Boot全棧開發(fā)架構(gòu)中,Nginx承擔(dān)著Vue.js應(yīng)用部署以及負(fù)載均衡的任務(wù)。

1.2.4 Spring Security

Spring Security為基于Java EE的企業(yè)級(jí)應(yīng)用程序提供全面的安全服務(wù)。特別是使用Spring框架構(gòu)建的項(xiàng)目,用戶可以使用Spring Security來(lái)加快構(gòu)建的速度。

Spring Security的出現(xiàn)有很多原因,主要是基于Java EE的Servlet規(guī)范或EJB(Enterprise JavaBean,企業(yè)級(jí)JavaBean)規(guī)范對(duì)企業(yè)級(jí)應(yīng)用缺乏安全性方面的支持。而Spring Security解決了這些問(wèn)題,并帶來(lái)了數(shù)十個(gè)有用的可自定義的安全功能。

有關(guān)Spring Security的詳細(xì)內(nèi)容,讀者可參閱筆者所著的《Spring Security教程》。

1.2.5 Spring MVC

Spring MVC是Spring提供的基于MVC(Model-View-Controller,模型-視圖-控制器模式)的輕量級(jí)Web開發(fā)框架,本質(zhì)上相當(dāng)于Servlet。

Spring MVC角色劃分清晰,分工明確。由于Spring MVC本身就是Spring框架的一部分,因此它可以與Spring框架無(wú)縫集成。

在性能方面,Spring MVC具有先天的優(yōu)越性,它是當(dāng)今業(yè)界最主流的Web開發(fā)框架之一,也是最熱門的開發(fā)技術(shù)之一。

一個(gè)好的框架要減輕開發(fā)人員處理復(fù)雜問(wèn)題的負(fù)擔(dān),在內(nèi)部有良好的擴(kuò)展,并且有支持它的龐大用戶群體,Spring MVC恰恰都做到了。

有關(guān)Spring MVC的詳細(xì)內(nèi)容,讀者可參閱筆者所著的《Spring 5開發(fā)大全》。

1.2.6 Spring Data

Spring Data的使命是為數(shù)據(jù)訪問(wèn)提供熟悉且一致的、基于Spring的編程模型,同時(shí)仍保留底層數(shù)據(jù)存儲(chǔ)的特征。

Spring Data使使用數(shù)據(jù)訪問(wèn)技術(shù)、關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)、MapReduce框架以及基于云的數(shù)據(jù)服務(wù)變得容易。

1.2.7 Hibernate

Hibernate是一個(gè)開放源碼的ORM(Object Relational Mapping,對(duì)象關(guān)系映射)框架,它對(duì)JDBC(Java Database Connectivity,Java數(shù)據(jù)庫(kù)互連)進(jìn)行了輕量級(jí)的對(duì)象封裝,并將POJO(Plain Ordinary Java Object,簡(jiǎn)單的Java對(duì)象)與數(shù)據(jù)表建立映射關(guān)系。Hibernate可以自動(dòng)生成SQL(Structured Query Language,結(jié)構(gòu)查詢語(yǔ)言)語(yǔ)句并自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲地使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。

Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序中使用,也可以在Servlet/JSP(Java Server Pages,Java服務(wù)器頁(yè)面)的Web應(yīng)用中使用。最具革新意義的是,Hibernate可以在應(yīng)用EJB的Java EE架構(gòu)中取代CMP(Container-Managed Persistence,容器管理持久化),完成數(shù)據(jù)持久化的重任。

1.2.8 H2

H2是一款開源的嵌入式數(shù)據(jù)庫(kù),采用Java語(yǔ)言編寫,不受平臺(tái)的限制。

同時(shí)H2提供了一個(gè)十分方便的Web控制臺(tái)用于操作和管理數(shù)據(jù)庫(kù)內(nèi)容。

H2還提供兼容模式,可以兼容一些主流的數(shù)據(jù)庫(kù),因此采用H2作為開發(fā)期的數(shù)據(jù)庫(kù)非常方便。

H2作為一款嵌入式的數(shù)據(jù)庫(kù),它最大的好處就是可以嵌入Web應(yīng)用,與Web應(yīng)用綁定在一起,成為Web應(yīng)用的一部分。

有關(guān)H2的詳細(xì)內(nèi)容,讀者可參閱筆者所著的《H2 Database教程》。

1.2.9 MySQL

MySQL是知名的開源關(guān)系型數(shù)據(jù)庫(kù)。MySQL 8為用戶帶來(lái)了全新的體驗(yàn),例如支持NoSQL、JSON(JavaScript Object Notation,JavaScript對(duì)象簡(jiǎn)譜)等,擁有MySQL 5.7兩倍以上的性能提升。

圖1-1是2021年—2022年的數(shù)據(jù)庫(kù)流行度排行結(jié)果。從圖1-1中可以看到,MySQL在開源關(guān)系型數(shù)據(jù)庫(kù)中是排行第一的。

圖1-1 2021年—2022年的數(shù)據(jù)庫(kù)流行度排行結(jié)果

主站蜘蛛池模板: 九龙县| 北碚区| 远安县| 金堂县| 韩城市| 沁阳市| 靖安县| 噶尔县| 辰溪县| 上栗县| 正宁县| 谢通门县| 肇东市| 凤凰县| 勃利县| 收藏| 万源市| 桦甸市| 恩施市| 田东县| 石景山区| 南皮县| 保德县| 黎城县| 东丽区| 湛江市| 广灵县| 长顺县| 彭泽县| 舞阳县| 天门市| 全南县| 射洪县| 拜泉县| 赤峰市| 阳春市| 会东县| 昌图县| 肥城市| 曲麻莱县| 确山县|