web應用部署(Tomcat,springboot部署方式)


轉載自:https://www.cnblogs.com/haimishasha/p/10791454.html

核心內容

1.在Tomcat中有四種部署Web應用的方式,分別是:

(1)利用Tomcat自動部署(項目直接拷貝OR WAR包拷貝 到webapps下)

(2)利用控制台進行部署(tomcat的manager控制台的deploy區域

(3)增加自定義的Web部署文件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml)

(4)手動修改%Tomcat_Home%\conf\server.xml文件來部署web應用

2.SpringBoot WEB項目兩種發布和部署方式

(1)通過WAR包

(2)通過JAR包(官網推薦)

3.springboot有3中熱部署方式:
(1)使用springloaded配置pom.xml文件,使用mvn spring-boot:run啟動
(2)使用springloaded本地加載啟動,配置jvm參數   -javaagent:<jar包地址> -noverify
(3)使用devtools工具包,操作簡單,但是每次需要重新部署

1. Tomcat中有四種部署Web應用的方式

第一種方式:利用Tomcat自動部署

        利用Tomcat自動部署方式是最簡單的、最常用的方式。若一個web應用結構為D:\workspace\WebApp\AppName\WEB-INF\*,只要將一個Web應用的WebContent級的AppName直接扔進%Tomcat_Home%\webapps文件夾下,系統會把該web應用直接部署到Tomcat中。所以這里不再贅述。

 

第二種方式:利用控制台進行部署

        若一個web應用結構為D:\workspace\WebApp\AppName\WEB-INF\*,利用控制台進行部署的方式如下:進入tomcat的manager控制台的deploy區域——在Context path中鍵入"XXX"(可任意取名)——在WAR or Directory URL:鍵入D:\workspace\WebApp\AppName (表示去尋找此路徑下的web應用)——點擊deploy按鈕。

  

          然后在%Tomcat_Home%\webapps路徑下將會自動出現一個名為XXX的文件夾,其內容即是D:\workspace\WebApp\AppName的內容,只是名字是XXX而已(這就是前面在Context path鍵入XXX的結果)。

以上說明利用控制台進行部署的實質仍然是利用Tomcat的自動部署。

第三種方式:增加自定義的Web部署文件

        若一個web應用結構為D:\workspace\WebApp\AppName\WEB-INF\*,這種部署方式稍微復雜一點,我們需要在%Tomcat_Home%\conf路徑下新建一個文件夾catalina——再在其中新建一個localhost文件夾——最后再新建一個XML文件,即增加兩層目錄並新增XML文件:%Tomcat_Home%\conf\Catalina\localhost\web應用配置文件.xml ,該文件就是部署Web應用的配置文件。

  例如,我們新建一個%Tomcat_Home%\conf\Catalina\localhost\XXX.xml,  該文件的內容如下:

 <Context path="/XXX" reloadable="true" docBase="D:\workspace\WebApp\AppName" workDir="D:\workspace\WebApp\work"/> 注意: (1)以上代碼中的workDir表示將該Web應用部署后置於的工作目錄(Web應用中JSP編譯成的Servlet都可在其中找到),如果使用的Eclipse作為IDE,一般可人為設置在WebApp的work目錄下。 如果自定義web部署文件XXX.xml中未指明workdir,則web應用將默認部署在%Tomcat_Home%\work\Catalina\localhost\路徑下新建的以XXX命名的文件夾下。(Web應用中JSP編譯成的Servlet都可在其中找到) (2)Context path即指定web應用的虛擬路徑名。docBase指定要部署的Web應用的源路徑。

        其實開發者可以使用安裝有Tomcat插件eclipse自動創建部署文件來部署Web應用而不必再手動建立該文件,方法如下: 

1. 打開Eclipse——打開菜單欄window選擇preference(首選項)——左側選擇Tomcat,如下圖示:

        2. 可以看到上圖中高亮畫出的Context declaration mode(Context 聲明模式)中選擇以Context files增加自定義部署文件的形式部署web應用——然后Contexts directory中指定上述文件的上級目錄(即%Tomcat_Home%\conf\Catalina\localhost )——點擊Apply或OK。

        3. 完上述步驟,再選中Web項目右鍵點擊properties(屬性)——選擇右側的Tomcat ,如下圖所示:

      4. 勾上"Is a Tomcat project"前的checkbox,將項目關聯至Tomcat。

在Context name中填入XXX,即Web應用自定義部署文件名和Context path名。

在Subdirectory to set as web application root (optional)中填入要部署的Web應用的實際路徑(即WEB-INF上級目錄)。

注意:Eclipse會自動地將workdir設置在Workspace\WebApp\work下。

如此便自動創建了%Tomcat_Home%\conf\Catalina\localhost\XXX.xml 文件。啟動Tomcat 即可自動部署Web應用。

第四種方式:手動修改%Tomcat_Home%\conf\server.xml文件來部署web應用

         此方法即打開%Tomcat_Home%\conf\server.xml文件並在其中增加以下元素:

   <Context docBase="D:\workspace\WebApp\AppName" path="/XXX" debug="0" reloadable="false" />

         然后啟動Tomcat即可。

         當然如果使用Eclipse,在Eclipse中的設置也有改變:打開菜單欄window選擇preference(首選項)——左側選擇Tomcat——可以看到上圖中高亮畫出的Context declaration mode(Context 聲明模式)中選擇以Server.xml文件來部署web應用。

  

2. SpringBoot WEB項目兩種發布和部署方式

(1)通過WAR包

(2)通過JAR包(官網推薦)

1. WAR

  傳統的部署方式:將項目打成war包,放入tomcat 的webapps目錄下面,啟動tomcat,即可訪問。

  步驟1:在pom.xml文件中將jar修改為war【<packaging>war</packaging>】

  步驟2:在pom.xml文件中將配置文件添加tomcat模塊【】  

<!-- 不使用內置的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>

<!-- 移除之后會報錯,加入下面的依賴 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>


<!-- 使用內置的tomcat  -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
      <artifactId>provided</artifactId><!--僅用於編譯和測試-->
</dependency>

  步驟3:在main方法處的啟動類基繼承

   

  步驟4:在pom.xml點擊右鍵選擇Maven install,會在target文件夾中生成xxx.war包

 

2. JAR

  步驟1:在pom.xml文件點擊右鍵,選擇“Maven install”,然后刷新target文件夾,在target中會產生xxx.jar包。

  步驟2:然后在cmd終端輸入代碼:java -jar xxx.jar ,發布成功

  步驟3:在瀏覽器輸入localhost等url進行訪問

3. JAR VS WAR

  

4. 線上部署

方式一:java -jar vodmanager.jar &           后台關閉后,服務不會中斷

方式二:nohup java -jar vodmanager.jar &  后台關閉后,服務不會中斷,並且會把輸出的文件信息寫在當前目錄下的nohup文件中。

3. SpringBoot熱部署三種方式

springboot有3中熱部署方式:
1.使用springloaded配置pom.xml文件,使用mvn spring-boot:run啟動
2.使用springloaded本地加載啟動,配置jvm參數   -javaagent:<jar包地址> -noverify
3.使用devtools工具包,操作簡單,但是每次需要重新部署

第一種:使用springloaded配置pom.xml文件

1. 原來的pom.xml文件中添加如下配置
<build>
     <plugins>
          <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <dependencies>
                    <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>springloaded</artifactId>
                         <version>1.2.6.RELEASE</version>
                    </dependency>
               </dependencies>
          </plugin>
     </plugins>
</build>
復制代碼

        注意:需要在spring-boot-maven-plugin中添加dependency

 
2.啟動方式變為maven啟動:在項目的文件夾dos窗口輸入命令mvn spring-boot:run
 
    注意:停止服務是只能使用ctrl+c, 如果設置后台啟動,需要kill進程

第二種:springloaded本地加載啟動,配置jvm參數

1.下載 springloaded工具包到一個指定目錄(或直接就用maven倉庫地址了)
2.在啟動項目時,在jvm參數中輸入命令
  -javaagent:D:\Maven\repository\org\springframework\springloaded\1.2.6.RELEASE\springloaded-1.2.6.RELEASE.jar  -noverify
 
擴展: -javaagent:命令后面跟冒號,意思是在執行main方法之前執行特定代碼
       -noverify 關閉java字節碼校驗功能

第三種:使用devtools工具包

1.在pom.xml中添加依賴
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <optional>true</optional>
</dependency>
2.啟動項目
 

總結

在開發測試環境下第三種可取,方便快捷
在生產環境下,建議使用第二種,使用腳本啟動

抄錄網址

  1. tomcat部署web應用的4種方法
  2. Spring Boot項目的兩種發布方式
  3. 開發筆記9:SpringBoot打包部署的三種方式
  4. Spring-Boot啟動方式,以及線上部署


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM