部署spring boot项目到外部tomcat服务器需调整打包方式和配置。1. 修改pom.xml中的打包方式为war,并将内嵌tomcat依赖设为provided;2. 创建继承springbootservletinitializer的类以确保应用正确启动;3. 生成war包后部署到tomcat的webapps目录;4. 注意tomcat版本兼容性、jsp依赖及日志检查,应用路径通常与war包名一致。按照步骤操作可顺利完成部署。

部署Spring Boot项目到Tomcat服务器其实并不难,但有些细节容易被忽略。Spring Boot默认使用内嵌的Tomcat,所以如果你要部署到外部的Tomcat服务器,需要做一些调整。下面是一些关键步骤和注意事项。

修改打包方式为war
Spring Boot默认是打成可执行jar包运行的,而部署到外部Tomcat需要用war包格式。你需要在pom.xml中做两件事:

-
把
标签改成war:war -
确保Spring Boot的内嵌Tomcat依赖设置为
provided,这样它不会被打进最终的war包里:
org.springframework.boot spring-boot-starter-tomcat provided
这一步做完之后,再执行mvn clean package,就会生成一个标准的war文件了。
编写ServletInitializer类
为了让你的Spring Boot应用能在外部Tomcat中启动,需要添加一个继承自SpringBootServletInitializer的类。这个类会告诉Tomcat如何加载Spring Boot应用。
示例代码如下:
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ApplicationInitializer extends SpringBootServletInitializer {
@Override
protected void configure(SpringApplicationBuilder builder) {
builder.sources(Application.class); // 这里的Application是你主类
}
}这个类不需要加任何注解,只要存在就行。有了它,Tomcat在启动时就能正确初始化Spring上下文。
部署到Tomcat并检查配置
生成war包之后,就可以把它放到Tomcat的webapps目录下,然后启动Tomcat。Tomcat会自动解压war文件,并部署你的应用。
几点需要注意的地方:
- Tomcat版本最好和Spring Boot兼容,一般推荐用Tomcat 9或以上。
- 如果你用了JSP页面,可能需要额外添加一些依赖,比如
tomcat-embed-jasper。 - 检查日志文件(如
catalina.out),看有没有启动错误。 - 应用访问路径通常是war包的名字,比如你生成的是
myapp.war,那访问地址就是http://localhost:8080/myapp。
基本上就这些。整个过程不算复杂,但有几个关键点不能漏掉,尤其是打包方式和ServletInitializer的编写。只要按照上面的步骤一步步来,大多数情况下都能顺利部署成功。










