Spring boot如何打war包發佈到tomcat

前言: 

平時在使用java做項目開發時,首先想到利用框架來提升開發效率,和提高可維護性。選擇spring可以使用ssmspring框架,springMVC,mybatis),而且企業中應用也比較廣泛,然而還是發現,在框架中有很多配置,而且看起來相當繁瑣,並且在這些配置中,大部分都屬於默認配置,習慣配置。因此spring boot就此誕生,它的主要目的就是實現“0”配置,此處的“0”不是代表沒有配置,而是代表極少的配置。並且spring boot還內置了tomcat

 

Tomcat是一種web容器,類似於apachenginx等,提供web服務的服務器軟件。它屬於輕量級,方便啓動和配置的web服務器,非常適合用來學習之用。不過有時候也可以作爲生產服務器來部署,通過搭建集羣提高可用性和高負載性。上面說到spring boot內置了tomcat,就意味着spring boot項目可以自己運行(編寫入口類,打爲jar包,使用java -jar 包名.jar來運行)但是在有的情況下我們既需要發佈軟件的靈活性,又想使用spring boot爲我們帶來的便利,因此我們就需要將spring boot項目當做普通項目一樣打成war包發佈到tomcat,這正是本章編寫的目的。

 

spring boot項目打war包發佈的步驟(此處以maven做講解):

1、構建spring應用(繼承SpringBootServletInitializer並重寫configure方法)

將入口文件做修改,代碼如下:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

 

@SpringBootApplication

public class WebApplication extends SpringBootServletInitializer {

 

public static void main(String[] args) {

SpringApplication.run(WebApplication.class, args);

}


@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebApplication.class);

}


}

 

2、配置pom.xml文件

A、先將打包類型做設置:

<packaging>jar</packaging>

改爲:

<packaging>war</packaging>

    

B、其他配置如下

<!-- 繼承spring boot -->

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.0.1.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

</parent>

 

<!-- 設置屬性編碼與版本-->

<properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>1.8</java.version>

</properties>

 

    <!--設置打包時包的名稱-->

<build>

    <finalName>ROOT</finalName>   

</build>

 

<!--配置依賴-->

<dependencies>

    <!--java持久化API主要用於和數據庫交互-->

    <dependency>

        <groupId>javax.persistence</groupId>

        <artifactId>persistence-api</artifactId>

        <version>1.0</version>

    </dependency>

    <dependency>

        <!-- 移除嵌入式tomcat插件避免與發佈後的環境衝突 -->

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-tomcat</artifactId>

        <scope>provided</scope>

    </dependency>

    <!--對數據庫的支持-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-jdbc</artifactId>

    </dependency>

    <!-- RabbitMQ -->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-amqp</artifactId>

    </dependency>

    <!--用於提供web服務(servlet容器)-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

    <!--引入thymeleaf模板引擎-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-thymeleaf</artifactId>

    </dependency>

    <!--引入測試插件比如Junit-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <scope>test</scope>

    </dependency>

    <dependency>

        <groupId>org.webjars</groupId>

        <artifactId>jquery</artifactId>

        <version>3.3.0</version>

    </dependency>

    <dependency>

        <groupId>org.webjars</groupId>

        <artifactId>bootstrap</artifactId>

        <version>3.3.7</version>

    </dependency>

    <!--引入全文檢索-->

    <dependency>

        <groupId>org.springframework.data</groupId>

        <artifactId>spring-data-solr</artifactId>

         <version>2.1.1.RELEASE</version>

    </dependency>


     <!--  httpclient --> 

    <dependency>

          <groupId>org.apache.httpcomponents</groupId> 

         <artifactId>httpclient</artifactId> 

          <version>4.3.5</version> 

    </dependency>

    <!--自動重啓或自動關閉緩存等功能於開發很有用-->

     <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-devtools</artifactId>

        <optional>true</optional>

    </dependency>


    <!-- 數據庫連接池 -->

    <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>5.0.8</version>

    </dependency>

    <!--引入阿里巴巴連接池-->

    <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>druid</artifactId>

        <version>1.1.9</version>

    </dependency>

</dependencies>

 

 

最後使用右鍵項目:

    Run As > maven clean(清除已打包的其他文件) > maven install(打包)

然後在target目錄下便可以看到設置了<finalName>ROOT</finalName>war包,

之後發佈即可


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章