SpringBoot部署到Tomcat
SpringBoot部署到Tomcat
曦暮流年前言
都知道在使用SpringBoot进行部署项目的时候有两种方式。第一种方式就是正常的打成jar包,然后通过 java -jar xxx.jar
命令来运行项目(因为SpringBoot是内嵌的Tomcat服务器的);第二种方式就是采用老方法让项目打成war包,然后把这个war包放到Tomcat服务器的webapps目录下,最后启动tomcat进行部署。
这两种方式各有各的好处,首先说说jar包。它呢主要就是方便,不需要再去安装配置tomcat的环境,直接通过命令就能直接运行项目。但是一个项目就需要占用一个端口,不能像直接部署到Tomcat中的那样一个端口中可以运行多个项目。这是因为SpringBoot是内嵌的Tomcat服务器,所以它自己会启动一个Tomcat服务器,用来运行项目。
再来说说war包,他虽然没有jar包来的方便但是通过部署到tomcat中可以让一个端口中可以运行多个项目。
在部署的时候不管是jar包还是war包都行,看个人需要。这篇文章就来说说SpringBoot项目如何打成war包并部署到Tomcat中。
版本信息
SpringBoot:3.1.5
Tomcat:10.1.30
前置
继承类
SpringBoot项目的启动类需要继承 SpringBootServletInitializer
类,并重写其中的 configure
方法。
builder.sources
方法是用来指定启动类的,里面填写的是启动类的类名。写当前的即可
1 |
|
POM文件
首先在 pom.xml
文件中修改它的打包方式,默认是jar包。修改成war包即可
1 | <packaging>war</packaging> |
因为SpringBoot是内嵌的Tomcat服务器,所以需要把Tomcat的依赖排除掉
1 | <!--排除Tomcat--> |
设置包名,在部署到Tomcat后在访问项目中的接口时必须要输入包名
1 | <!-- 父元素为 build 标签 --> |
如果不设置包名那么它的默认包名就是 rtifactId + version
的拼接。
比如现在有一个项目叫aaa它的版本是0.0.1,在不设置报名的情况下部署到Tomcat中想要访问这个项目需要输入 http://localhost:8080/aaa-0.0.1/接口
,但是如果设置包名为 aaa
则访问时输入 http://localhost:8080/aaa/接口
即可。
部署
在打包之前先使用一下 mvn clean
这个命令,清除掉原来 target
目录下的文件。
然后使用 mvn package
这个命令,开始打包。当出现 BUILD SUCCESS
的时候,说明打包成功。此时 war 包就在 target
目录下了,就是后缀为 .war
的。
找到war包之后把它上传到服务器中tomcat的webapps目录下。然后启动tomcat不需要解压war包,他会自动进行部署