如何讓 Spring Boot 項目發佈到 Tomcat 服務器
第 1 步:將這個 Spring Boot 項目的打包方式設置爲 war。
<packaging>war</packaging>
這裏還要多說一句, SpringBoot 默認有內嵌的 tomcat 模塊,因此,我們要把這一部分排除掉。
即:我們在 spring-boot-starter-web 裏面排除了 spring-boot-starter-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>
第 2 步:提供一個 SpringBootServletInitializer 子類,並覆蓋它的 configure 方法。我們可以把應用的主類改爲繼承 SpringBootServletInitializer。或者另外寫一個類。
@SpringBootApplicationpublic class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
注意:部署到 tomcat 以後,訪問這個項目的時候,須要帶上這個項目的 war 包名。
例如:
http://localhost:8080/Boot-1.0/user/show/18
其中,Boot-1.0 是我放在 tomcat 上的 war 包名。
<packaging>war</packaging>
這裏還要多說一句, SpringBoot 默認有內嵌的 tomcat 模塊,因此,我們要把這一部分排除掉。
即:我們在 spring-boot-starter-web 裏面排除了 spring-boot-starter-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>
第 2 步:提供一個 SpringBootServletInitializer 子類,並覆蓋它的 configure 方法。我們可以把應用的主類改爲繼承 SpringBootServletInitializer。或者另外寫一個類。
@SpringBootApplicationpublic class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
注意:部署到 tomcat 以後,訪問這個項目的時候,須要帶上這個項目的 war 包名。
例如:
http://localhost:8080/Boot-1.0/user/show/18
其中,Boot-1.0 是我放在 tomcat 上的 war 包名。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.