SpringBoot打包为war包,并在tomcat中运行
SpringBoot打包为war包,并在tomcat中运行
先看一下我创建的最简单的项目吧。
controller类
1 |
|
pom文件没有做任何修改,我们直接启动这个项目,注意看启动的日志中有关嵌入式tomcat的版本的

我这里的版本是8.5.37,这个是由你选用的springboot的版本定的,我选用的springboot是2.0.8版本的。好了,我们就直接访问项目了,访问成功

好了,我们刚才是直接在idea中启动了这个类,当然就可以打包成jar包启动了,就不演示了,直接开始打包为war包
1. 修改pom文件,因为springboot使用的内嵌式的tomcat,所以我们做如下操作
1 | <!-- 将打包方式改为war包--> |
好了,pom.xml算是改完了,这时候,我们在idea中直接启动SpringBootApplication.java时会报以下错误
2.新建一个启动类,tomcat是找不到springboot的启动类的,我们要新建一个类指向它,这个类要继承SpringBootServletInitializer类,并重写 configure 方法
在我们springboot启动类的同一个下创建一个类
1 | /** |
通过以上两步,已经完成了由jar包转为war的过程。
因为打包方式为war包,所有启动这个类也就报错了,同样,也不能打包为jar包了。那么我们就在idea中配置tomcat启动方式,tomcat的版本要和之前这个嵌入式的一样(理论上只要大版本上相同就好了,同为tomcat8.5)。更多的tomcat版本下载,见tomcat各个版本下载
在idea配置tomcat启动时可能有个小插曲,就是找不到对应的war包,你可以先使用maven打包一次,或者点击下这里
我们在idea中用tomcat方式启动后,没有问题了。

最后,我们用maven打包,然后放在我们的tomcat中启动就可以了
注意以下几点 :
1.之前在springboot中一些配置不生效,最明显的就是对端口的配置
2.如何修改之前的springboot项目的版本,只要在pom.xml中最开始的地方修改就可以了
1
2
3
4
5
6<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小鱼吃猫!

