大家在使用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包的名稱]/方法路徑或者頁面路徑。
方法定義
瀏覽器請求該方法