說明
最近開始寫spring boot框架, 而spring boot自帶Servlet容器, 發現除了使用 java方式運行Application.java的方式運行項目,使用像平常的web項目的啓動方式,部署到了spring boot的內置servlet容器中,若要把spring-boot項目按照平常的web項目一樣發佈到tomcat下的方式在eclipse中啓動,需要加以下配置。
具體步驟
(1). 修改pom.xml將打包方式改成war
<packaging>war</packaging>
(2). Tomcat的版本支持
<!-- 打war包時加入此項, 告訴spring-boot tomcat相關jar包用外部的,不要打進去 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
加上這個後,不用spring-boot內置的tomcat庫
(3). 修改啓動類,並重寫初始化方法
我們需要類似於web.xml的配置方式來啓動spring上下文了,在Application類的同級添加一個SpringBootStartApplication類,其代碼如下:
/**
* 修改啓動類,繼承 SpringBootServletInitializer 並重寫 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
(4). 這樣就可以把spring-boot項目按照平常的web項目一樣發佈到tomcat下的方式在eclipse中啓動(建議發佈到root下)
注:進入項目根目錄下(即包含pom.xml的目錄),打開命令行,在命令行裏輸入:
mvn clean package即可, 等待打包完成,出現[INFO] BUILD SUCCESS即爲打包成功。
然後把target目錄下的war包放到tomcat的webapps目錄下,啓動tomcat,即可自動解壓部署。
最後在瀏覽器中輸入
http://localhost:[端口號]/[打包項目名]/
(5).效果圖:
(5.1). Tomcat啓動日誌1
(5.2). Tomcat啓動日誌2
(5.3). 訪問效果