1.在pom.xml里設置 <packaging>war</packaging>
2.去除內置tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 去除內嵌tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!--添加servlet的依賴--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
3.修改啟動類
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
在Application類的同級添加一個SpringBootStartApplication類,其代碼如下:
/** * 修改啟動類,繼承 SpringBootServletInitializer 並重寫 configure 方法 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這里要指向原先用main方法執行的Application啟動類 return builder.sources(Application.class); } }
接着可以打包了:
打包好會生成以為xxx.war的文件,在你項目target文件里
以下是部署配置tomcat的操作
第一步把打包好的war包 放到 tomcat目錄下的webapps 下
截圖:
第二步:找到tomcat目錄下的server.xml配置文件
server.xml在conf文件夾下面
編輯server.xml,將下圖位置的8080端口更改為80
我這里已經改成80了
第三步:
將Host中的name更改成要設置的域名或IP地址,本例中設置了如下域名,此外,我們還需要在Host下配置一個Context用於指定應用的運行環境。其中:
1. docBase(Document Base)為應用相對於webapps的路徑,如果將docBase設置為Web應用名稱(本例為demo),則在Url地址中就可以不用輸入項目名稱了;
2. path為應用的上下文路徑,如果默認為空則表明當前Context為默認Context;
3. reloadable默認為false,表明是否監聽/WEB-INF/classes/以及/WEB-INF/lib目錄的變化,應用在開發階段可以將其設置為true,但是上生產環境時最好設置為false,否則會占用較大的虛擬機資源影響應用性能。