Spring spring

Spring中文网站 > Spring Boot > Spring Boot怎么和Vue整合 Spring Boot集成了Tomcat吗
Spring Boot怎么和Vue整合 Spring Boot集成了Tomcat吗
发布时间:2026/08/20 11:36:12

品牌型号:联想ThinkPad X1

系统:Windows10家庭版

软件版本:Spring 5.3.7

前后端分离这几年已经成了主流,Spring Boot配Vue几乎已经是标配组合,新项目基本都这么组合。但真正上手的时候,不少人会卡在一些细节上,例如前端项目怎么和后端整合部署、请求跨域怎么处理、打包之后静态资源放哪。还有个问题也经常被忽略,Spring Boot项目跑起来不需要额外装Tomcat,直接java -jar就能启动,这是怎么回事?Tomcat到底在不在里面?这两个问题单独看都不复杂,但理清楚了对理解Spring Boot的运行机制很有帮助,下面就给大家介绍一下Spring Boot怎么和Vue整合,Spring Boot集成了Tomcat吗的相关内容。

一、Spring Boot怎么和Vue整合

整合这件事,需要先想清楚用哪种方式,因为思路不同,项目结构和部署方式都不一样。现在用得比较多的方式是分离部署,Vue项目和Spring Boot项目各自独立,Vue负责页面,Spring Boot提供接口,两边分开开发、分开部署。

全局跨域配置
图1:全局跨域配置

Vue打包出来的静态文件放到Nginx上,Nginx同时做反向代理,把接口请求转发到后端服务,这种方式跨域问题交给Nginx处理,只要配置proxy_pass规则就解决了,前后端互不干扰,团队协作也很方便。

Nginx核心配置
图2:Nginx核心配置

如果是小项目或者不想维护两套部署环境的场景,可以把Vue打包进Spring Boot。做法也很直接,Vue项目执行npm run build生成dist文件夹,把里面的内容复制到Spring Boot的src/main/resources/static目录下,启动后端项目,直接访问就能看到页面。这种方式省去了Nginx,部署流程简便,但前后端存在耦合,不适用于大型项目。

页面按钮调用后端接口
图3:页面按钮调用后端接口

实际项目里更多还是用分离部署的方式,灵活性高,前后端可以独立扩容,出了问题也好排查。把Vue打包到Spring Boot虽然简单,但长期维护起来不太舒服,除非项目真的很小、很稳定,否则不太推荐。

二、Spring Boot集成了Tomcat吗

Spring Boot是默认集成了Tomcat的,我们在用Maven或者Gradle创建Spring Boot Web项目时,依赖里会有个spring-boot-starter-web,这个starter里面就内嵌了Tomcat。项目打成jar包之后,Tomcat跟着一起打进去了,所以才能直接java -jar启动,不需要外面再装一个Tomcat,也不需要把项目打成war包丢进去跑。

创建Spring Boot Web项目
图4:创建Spring Boot Web项目

这个设计改变了以前的开发方式,传统做法是本地装Tomcat,项目打war包,部署的时候手动放进webapps目录,修改配置后还要重启容器,非常麻烦,现在Spring Boot把这些全省掉了,Tomcat的配置直接写在application.yml里,改端口、调线程池、配SSL,统一配置即可完成。

传统部署方式
图5:传统部署方式

内嵌的Tomcat版本跟着Spring Boot走,不需要我们管,升级Spring Boot时,内嵌Tomcat会同步更新,非常省心。有人会问不想用Tomcat,能换吗?

能换。Spring Boot还支持Jetty和Undertow,把spring-boot-starter-web里的Tomcat依赖排除掉,换成对应的starter就行。Undertow在高并发场景下性能表现不错,有些项目会选它。

application.yml配置文件
图6:application.yml配置文件

现实中有些项目必须部署到外部Tomcat,比如公司运维那边统一管容器,禁止使用内嵌容器,这种情况下需要把打包方式改成war,继承SpringBootServletInitializer,同时把内嵌Tomcat的scope设成provided,告诉Maven打包的时候不要把Tomcat打进去,用外部容器提供的就好。

但说实话,现在容器化部署越来越普遍,Docker镜像直接跑jar包,内嵌Tomcat反而更契合这种方式,不依赖外部环境,部署简单,迁移也方便。外部Tomcat的方式用得越来越少了,除非有历史包袱或者特殊的运维要求,一般没必要折腾。

以上就是Spring Boot怎么和Vue整合,Spring Boot集成了Tomcat吗的全部内容了。我们在大中型项目中要对Spring Boot和Vue做整合,可以考虑分离部署,如果是练手小项目直接内嵌静态资源就可以了。Spring Boot Web默认内嵌了Tomcat,所以它可以直接jar包启动,现在容器化部署已经成为了行业主流,用内嵌服务会很便捷。

 

180 1563 6924