在开发阶段我们推荐使用内嵌的tomcat进行开发,因为这样会方便很多,但是到生成环境,我希望在独立的tomcat容器中运行,因为我们需要对tomcat做额外的优化,这时我们需要将工程打包成war包进行发布。
工程的打包方式为war包
1、将spring-boot-starter-tomcat的范围设置为provided
在pom中添加spring-boot-starter-tomcat,设置为provided是在打包时会将该包排除,因为要放到独立的tomcat中运行,所以内置的Tomcat是不需要的。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2、修改代码,设置启动配置
为什么要继承SpringBootServletInitializer类和重写configure方法稍后我在详细讲解。
3、打war包
4、部署到Tomcat中
打包成功后将war包解压到Tomcat的webapps下的ROOT目录中,启动就部署完成了;
现在对为什么要继承SpringBootServletInitializer类和重写configure方法详细讲解。
首先我们要明白一点,SpringBoot项目是没有web.xml文件的,那我们怎么启动项目的?我们先看一下SpringBoot的war包解约后结构:
这些类是怎么来的?其实这些类就是我们继承SpringBootServletInitializer类和重写configure方法后才会在打包时自动生成的,如果要问为什么继承SpringBootServletInitializer类之后SpringBoot就会帮我们自动生成一系列文件的话,就需要你自己去翻看源码了,O(∩_∩)O哈哈~