SpringBoot平時咱們用的爽歪歪,爽到它本身連Tomcat都自集成了,咱們能夠直接編寫SBT啓動類,而後一鍵開啓內置的Tomcat容器服務,確實是很好上手。但考慮到實際的情形中,咱們的Tomcat服務器通常是另外部署好了的,有專門的維護方式。此時咱們須要剝離掉SBT應用內置的Tomcat服務器,進而將應用發佈並部署到外置的Tomcat容器之中,本文就實踐一下這個。java
注: 本文首發於 My 公衆號 CodeSheep ,可 長按 或 掃描 下面的 當心心 來訂閱 ↓ ↓ ↓
修改項目的pom.xml配置,咱們修改其打包方式爲war方式,如:web
<groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
修改pom.xml,從maven的pom中移除springboot自帶的的嵌入式tomcat插件spring
<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>
修改pom.xml,在maven的pom中添加servlet-api的依賴編程
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
在SpringBoot中咱們日常用main方法啓動的方式,都有一個SpringBootApplication的啓動類,相似代碼以下:c#
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
而咱們如今須要相似於web.xml的配置方式來啓動spring應用,爲此,咱們在Application類的同級添加一個SpringBootStartApplication類,其代碼以下:api
// 修改啓動類,繼承 SpringBootServletInitializer 並重寫 configure 方法 public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這裏必定要指向原先用main方法執行的Application啓動類 return builder.sources(Application.class); } }
pom.xml
的目錄)記性maven打包操做:mvn clean package
等待打包完成,出現 [INFO] BUILD SUCCESS
即爲打包成功瀏覽器
target
目錄下生成的war
包放到tomcat的webapps
目錄下,啓動tomcat,便可自動解壓部署。最後在瀏覽器中驗證:tomcat
http://YOUR_IP:[端口號]/[打包項目名]
http://YOUR_IP:[端口號]
做者更多的SpringBt實踐文章在此:springboot
若是有興趣,也能夠抽點時間看看做者一些關於容器化、微服務化方面的文章:服務器