大家在使用SpringBoot的时候会发现它是基于Tomcat的,然后可以使用启动类直接运行main函数一样启动。那么怎么把它发布到独立的Tomcat中执行呢? 启动很简单轻松配置几下即可。
一:修改打包方式
<packaging>war</packaging>
二:由于SpringBoot默认嵌入了Tomcat,所以需要把它消除掉
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>log4j-over-slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
三:集成SpringBootServletInitializer,然后重写configure,将Spring Boot的启动类设置进去。
@SpringBootApplication
@ComponentScan (basePackages = "com.zz")
public class App extends SpringBootServletInitializer {
protected SpringApplicationBuilder configure (SpringApplicationBuilder builder) { // 设置启动类,用于独立tomcat运行的入口
return builder.sources (App.class);
}
public static void main (String[] args) {
SpringApplication.run (App.class, args);
}
}
四:打WAR包
当然也可以用maven命令打包,我就不一一列出了。
五:测试(把打好包直接丢入tomcat webapps目录下然后启动就可以了)
启动成功图
请求URL: http://ip:port/[打成的war包的名称]/方法路径或者页面路径。
方法定义
浏览器请求该方法