首页 » 架构设计 » 正文

团队领导必备技能:搭建前后台分离的 Spring Boot 项目

理解前后端分离

前面的课程我们讲了,前后端分离,就是页面的渲染在前端浏览器执行,后台只负责接收和响应数据。

这里要注意的是,前后端分离的意思并不是前后台代码分开部署。

前台应用单独部署方案

可以将前台应用部署在任意一个 Web 服务器中:

  • Tomcat
  • Nginx
  • NodeJs Express
  • Apache Http Server

注意各个服务器中的配置,在前台应用启动 History 路由功能的时候,要适配 History API。对于 Web 应用要配置 base-href;并且服务器要重写 URL,将所有的路由请求转发到 index.html 页面,以 Nginx 的配置为例:

location /frontend-demo {
	root   /opt/web-apps;
	index  index.html;
	try_files $uri $uri/ /frontend-demo/index.html;
}

前端应用和后端应用不在同一个服务器中的时候,后台应用需要开启 CORS (Cross-origin resource sharing) 支持。

前台应用打包进 Spring Boot 应用

Spring Boot 直接嵌入了 Tomcat, Jetty 或者 Undertow,不需要部署 war 包就可以直接启动 Web 应用。

默认情况下,Spring Boot从类路径中名为 /static(或 /public 或 /resources 或 /META-INF/resources)的目录服务静态内容。

frontend-maven-plugin 可以将 Node 和 npm 项目打进 jar 包,Spring Boot 项目把打成的前端 jar 包直接引入进来。