1. 程式人生 > >部署SpringBoot專案到windows server雲伺服器

部署SpringBoot專案到windows server雲伺服器

一、準備環境。

首先考慮,你的專案正常執行需要哪些環境。MySQL,Java,Tomcat 這三種應該是大多人配置專案最基本的環境。

安裝教程,測試是否正確安裝,請自行百度。

二、SpringBoot專案的兩種打包方式

1)傳統的war方式,將編譯成功的專案放在tomcat的webapps資料夾下

將pom.xml中packing打包方式變為war

<packaging>war</packaging>
 移除內建的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-api的依賴
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

修改啟動類,重寫初始化方法
我們平常用main方法啟動的方式,都有一個App的啟動類,程式碼如下:


@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
我們需要類似於web.xml的配置方式來啟動spring上下文了,
在Application類的同級新增一個SpringBootStartApplication類,其程式碼如下:

/**
 * 修改啟動類,繼承 SpringBootServletInitializer 並重寫 configure 方法
 */
public class SpringBootStartApplication extends SpringBootServletInitializer {
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意這裡要指向原先用main方法執行的Application啟動類
        return builder.sources(Application.class);
    }
}
打包
第一種:Exclipse 中 右鍵專案--》Run As -->Maven Clean -->出現 BUILD SUCCESS

--》Maven Install -- >出現 BUILD SUCCESS 

第二種:在專案根目錄下(即包含pom.xml的目錄),在命令列裡輸入:
mvn clean package即可, 等待打包完成,出現[INFO] BUILD SUCCESS即為打包成功。

然後把target目錄下的war包放到tomcat的webapps目錄下,啟動tomcat,即可自動解壓部署。
在瀏覽器輸入路徑啟動。 即釋出成功。

2)特有的jar包方式,用java -jar 打包專案名稱.jar 方式啟動內建tomcat執行

 pom.xml中packing打包方式為jar

<packaging>jar</packaging>
如果沒有特殊情況,重複上面的打包方式。將target資料夾中打包好的jar檔案,放在伺服器的一個目錄中。
然後在命令列中cd 進入該目錄中,用java -jar 打包專案名稱.jar 啟動專案。即可。

在伺服器中瀏覽器上使用內網IP進行測試。若伺服器內部訪問沒問題。則進行下一步操作。

三、將tomcat啟動服務註冊為系統服務

以上即可釋出成功,但是啟動tomcat需要執行bin目錄中的 startup.bat檔案。這樣的話,會有小視窗一直存在,

一旦關閉小視窗,或者出現某種情況tomcat就會停止執行後。所以現在將其註冊為系統服務,預設為自動啟動。

只要伺服器不關機,tomcat服務就不會停止。

 註冊方法:

 1. 在DOS命令列模式下,cd到tomcat的bin目錄下。

 2.在tomcat的bin目錄下可以看到有一個service.bat的批處理檔案,這個檔案就是為我們將tomcat註冊成系統服務所用。有 興趣的可以開啟看看批處理檔案裡面的內容。

 3.執行命令service.bat  install  服務名   後面的服務名可以隨便取,別跟系統已有的服務名衝突就行。

 如果成功可以看到以下提示資訊:

 The Service '服務名'  has been installed

  如果不需要這個服務了,也可以用簡單的命令將其去除就OK 了

 前面步驟如上,執行命令:service.bat uninstall 服務名

 移除成功的提示資訊:

 The Service ‘服務名' has been removed

四、若是jar包方式部署的話,除tomcat有小視窗外,jar啟動也會有小視窗而且不能關閉,使用AlwaysUp也將其註冊為系統服務
 使用AlwaysUp工具。alwaysup是一個計算機系統軟體,能將可執行檔案、批處理檔案及快捷方式作為windows系統服 務,並且進行管理和監視確保100%執行。當程式崩潰、掛起、彈出錯誤對話方塊時,AlwaysUp 能自動重啟程式,並執行自 定義的檢查功能確保程式一直可用。

 手動編寫一個啟動jar執行的 .bat檔案,執行AlwaysUp,點選左上角第一個按鈕,如圖

然後Name中填寫註冊為服務的名稱。 Application選擇編寫完成的.bat檔案。


右鍵start,開啟伺服器即可以系統服務方式執行。

五、在本機使用公網IP或者域名進行連線測試。無誤,即可正常使用。

六、在部署過程中,還出現了一些問題。

1)Windwos Server預設以80埠進行web訪問。  如果出現類似問題,考慮伺服器的防火牆新建入站規則,開放需要使用的埠號;或者阿里雲控制檯的防火牆開放需要使用的埠號。比如,MySQL的3306埠,專案中自定義的tomcat埠號等,需要設定。

2)沒有設定域名的話,外網以公網IP的形式訪問需要加上 埠號