Vue.js+Spring Boot全栈开发实战
上QQ阅读APP看书,第一时间看更新

1.2 Vue.js+Spring Boot全栈开发周边技术栈的组成

为了构建大型Web应用,除常使用Vue.js+Spring Boot全栈开发架构的两种核心技术外,业界还常使用Naive UI、md-editor-v3、Nginx、Spring Security、Spring MVC、Spring Data、Hibernate、H2、MySQL等周边技术。

1.2.1 Naive UI

Naive UI是一款支持Vue.js 3的前端UI框架,有超过70个组件,可有效减少代码的编写量。

Naive UI全量使用TypeScript编写,因此可以和TypeScript项目无缝衔接。

Naive UI具备如下特性。

  • 比较完整。Naive UI有超过70个组件,能使用户少写一点代码,且它们全都支持Tree Shaking(摇树优化)。
  • 主题可调。Naive UI提供使用TypeScript构建的先进的类型安全主题系统。用户只需要提供一个样式覆盖的对象,剩下的操作都交给Naive UI完成即可。
  • 使用TypeScript。Naive UI使用TypeScript编写而成,可以与TypeScript无缝衔接。顺便一提,它不需要导入任何CSS代码就能让组件正常工作。
  • 界面渲染速度快。select、tree、transfer、table、cascader等组件都支持按需显示可以根据用户的滚动渲染可视区域内的一部分列表元素,而不必渲染所有列表项。

在Vue.js+Spring Boot全栈开发架构中,Naive UI将与Vue.js一起构建炫酷的UI。

1.2.2 md-editor-v3

Markdown是一种可使用普通文本编辑器编写的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。因此在内容管理类的应用中,经常采用Markdown编辑器来编辑文本内容。

md-editor-v3是一款Markdown插件,能够将Markdown格式的内容渲染成HTML(Hypertext Markup Language,超文本标记语言)格式的内容。最为重要的是,md-editor-v3是支持Vue.js 3的,因此其与Vue.js 3应用有着良好的兼容性。

在Vue.js+Spring Boot全栈开发架构中,md-editor-v3将与Vue.js一起构建内容编辑器。

1.2.3 Nginx

在大型Web应用中,经常使用Nginx作为Web服务器。

Nginx是免费的、开源的、高性能的HTTP服务器和反向代理,同时也是IMAP(Internet Message Access Protocol,因特网消息访问协议)/POPv3(Post Office Protocol version 3,邮局协议第3版)代理服务器。Nginx以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。

Nginx是市面上为解决C10k问题而编写的仅有的几个服务器之一。与传统服务器不同,Nginx不依赖于线程来处理请求。相反,它使用可扩展的事件驱动(异步)架构,这种架构在高负载场景下使用小的,但更重要的是可预测的内存量。即使在需要处理数千个并发请求的场景下,用户仍然可以从Nginx的高性能和占用内存少等方面获益。可以说Nginx在各个场景都能使用,从最小的VPS(Virtual Private Server,虚拟专用服务器)一直到大型服务器集群。

在Vue.js+Spring Boot全栈开发架构中,Nginx承担着Vue.js应用部署以及负载均衡的任务。

1.2.4 Spring Security

Spring Security为基于Java EE的企业级应用程序提供全面的安全服务。特别是使用Spring框架构建的项目,用户可以使用Spring Security来加快构建的速度。

Spring Security的出现有很多原因,主要是基于Java EE的Servlet规范或EJB(Enterprise JavaBean,企业级JavaBean)规范对企业级应用缺乏安全性方面的支持。而Spring Security解决了这些问题,并带来了数十个有用的可自定义的安全功能。

有关Spring Security的详细内容,读者可参阅笔者所著的《Spring Security教程》。

1.2.5 Spring MVC

Spring MVC是Spring提供的基于MVC(Model-View-Controller,模型-视图-控制器模式)的轻量级Web开发框架,本质上相当于Servlet。

Spring MVC角色划分清晰,分工明确。由于Spring MVC本身就是Spring框架的一部分,因此它可以与Spring框架无缝集成。

在性能方面,Spring MVC具有先天的优越性,它是当今业界最主流的Web开发框架之一,也是最热门的开发技术之一。

一个好的框架要减轻开发人员处理复杂问题的负担,在内部有良好的扩展,并且有支持它的庞大用户群体,Spring MVC恰恰都做到了。

有关Spring MVC的详细内容,读者可参阅笔者所著的《Spring 5开发大全》。

1.2.6 Spring Data

Spring Data的使命是为数据访问提供熟悉且一致的、基于Spring的编程模型,同时仍保留底层数据存储的特征。

Spring Data使使用数据访问技术、关系型数据库和非关系型数据库、MapReduce框架以及基于云的数据服务变得容易。

1.2.7 Hibernate

Hibernate是一个开放源码的ORM(Object Relational Mapping,对象关系映射)框架,它对JDBC(Java Database Connectivity,Java数据库互连)进行了轻量级的对象封装,并将POJO(Plain Ordinary Java Object,简单的Java对象)与数据表建立映射关系。Hibernate可以自动生成SQL(Structured Query Language,结构查询语言)语句并自动执行,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序中使用,也可以在Servlet/JSP(Java Server Pages,Java服务器页面)的Web应用中使用。最具革新意义的是,Hibernate可以在应用EJB的Java EE架构中取代CMP(Container-Managed Persistence,容器管理持久化),完成数据持久化的重任。

1.2.8 H2

H2是一款开源的嵌入式数据库,采用Java语言编写,不受平台的限制。

同时H2提供了一个十分方便的Web控制台用于操作和管理数据库内容。

H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。

H2作为一款嵌入式的数据库,它最大的好处就是可以嵌入Web应用,与Web应用绑定在一起,成为Web应用的一部分。

有关H2的详细内容,读者可参阅笔者所著的《H2 Database教程》。

1.2.9 MySQL

MySQL是知名的开源关系型数据库。MySQL 8为用户带来了全新的体验,例如支持NoSQL、JSON(JavaScript Object Notation,JavaScript对象简谱)等,拥有MySQL 5.7两倍以上的性能提升。

图1-1是2021年—2022年的数据库流行度排行结果。从图1-1中可以看到,MySQL在开源关系型数据库中是排行第一的。

图1-1 2021年—2022年的数据库流行度排行结果