我们都知道SpringBoot是内置了Tomcat的,因此在开发调试的时候,我们直接点击运行按钮就可以直接启动SpringBoot项目。但如果我们现在需要将它部署到某台服务器上Tomcat上时,又该怎么做呢?如果对项目直接进行打包放到Tomcat上显然是行不通的,我们需要对项目进行一些配置才能使它在外部Tomcat上运行。
1.首先需要添加如下依赖以屏蔽SpringBoot内置的Tomcat容器,此依赖的作用域设置为provided
,意味着在项目打包时不会将其打入war包中。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2.让Application启动类继承SpringBootServletInitializer
类,并且重写configure
方法,也可以在启动类所在的同一目录下创建一个新的类同样继承上述类并重写上述方法,这里以前者为例。
@SpringBootApplication
public class SwaggerDemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SwaggerDemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SwaggerDemoApplication.class);
}
}
注意configure
方法中返回的是builder.sources(启动类的class对象)
方法的返回值。
3.将项目进行打包,将打包后的war文件拷贝到Tomcat根目录下的webapps
目录下。
4.重新启动Tomcat,在浏览器中输入项目的URL地址进行访问,如果可以访问则说明项目部署成功。
注意:当使用外部Tomcat进行部署时,application.properties中的项目上下文路径、服务端口等配置将不再生效,将以Tomcat配置文件中配置的参数为准。