第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Spring Boot 打包與部署

1. 前言

項(xiàng)目開發(fā)完畢后,免不了將前后端應(yīng)用打包,然后部署到生產(chǎn)服務(wù)器上運(yùn)行。本篇就演示一個(gè)標(biāo)準(zhǔn)的打包、部署過程。

2. 操作流程

我們以上一篇開發(fā)的前后端分離項(xiàng)目 spring-boot-cors 為例進(jìn)行打包、部署演示,步驟如下:

2.1 服務(wù)器運(yùn)行環(huán)境安裝

一般服務(wù)器采用 Linux 或者 Windows Server 系統(tǒng),相對(duì)而言 Linux 系統(tǒng)更加穩(wěn)定安全。實(shí)際上 Windows Server 系統(tǒng)對(duì)于一般應(yīng)用來說也足夠了,本篇我們使用 Windows Server 系統(tǒng)進(jìn)行演示。

推薦使用云服務(wù)器,更加穩(wěn)定且易于維護(hù),國(guó)內(nèi)廠商阿里云、華為云都還不錯(cuò)。

Tips: 云服務(wù)器的硬盤讀寫性能非常重要,在購(gòu)買云服務(wù)器時(shí)務(wù)必關(guān)注下云硬盤的 IOPS 值(衡量硬盤讀寫性能的一個(gè)指標(biāo)),一般建議要采用 IOPS > 3800 的云磁盤。

具備云服務(wù)器后,需要安裝 JDK 以便運(yùn)行 Spring Boot 應(yīng)用。由于 nginx 對(duì)靜態(tài)資源的負(fù)載能力非常強(qiáng)悍,所以我們將前端應(yīng)用部署到 nginx 上。

2.2 Spring Boot 打包為 jar 并運(yùn)行

Spring Boot 應(yīng)用可以打包為 war 或者 jar ,官方和我個(gè)人都是推薦打 jar 包。可以直接運(yùn)行,無需部署到 Web 服務(wù)器上。

打開命令行工具,進(jìn)入 spring-boot-cors 項(xiàng)目目錄后運(yùn)行 mvn clean package -Dmaven.test.skip=true 命令,即可快速打包 Spring Boot 應(yīng)用。下圖中的 jar 文件,即為打包后的 Spring Boot 應(yīng)用。

圖片描述

打包后生成的文件內(nèi)容

接下來我們將該應(yīng)用拷貝至服務(wù)器,在同一目錄下新建 start.bat 文件,內(nèi)容如下:

java -jar spring-boot-cors-0.0.1-SNAPSHOT.jar

雙擊 start.bat 文件即可啟動(dòng)項(xiàng)目,效果如下,可以看出系統(tǒng)已經(jīng)啟動(dòng)成功(started)。
圖片描述

Spring Boot 打包項(xiàng)目已啟動(dòng)

2.3 Spring Boot 打包為 war 并運(yùn)行

也可以選擇將 Spring Boot 打包為 war ,然后放置于 Tomcat 的 webapps 目錄下加載運(yùn)行,接下來我們就詳細(xì)描述下打包為 war 的過程。

首先,在 pom.xml 文件中修改默認(rèn)的打包方式,顯式指定打包方式為 war 。

	<groupId>com.imooc</groupId>
	<artifactId>spring-boot-cors</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>spring-boot-cors</name>
	<description>Demo project for Spring Boot</description>
    <packaging>war</packaging>

然后,由于 Spring Boot 內(nèi)置了 Tomcat ,所以我們?cè)诖虬鼤r(shí)需要排除內(nèi)置的 Tomcat ,這樣可以避免內(nèi)置 Tomcat 和 war 包部署運(yùn)行的 Tomcat 產(chǎn)生沖突。在 pom.xml 中添加如下依賴即可:

		<!--打war包時(shí)排除內(nèi)置的tomcat-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

再然后,還需要繼承 SpringBootServletInitializer 類并重寫 configure 方法,這是為了告訴 Tomcat 當(dāng)前應(yīng)用的入口在哪。

@SpringBootApplication
public class SpringBootCorsApplication extends SpringBootServletInitializer {
	@Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringBootCorsApplication.class);
    }
	public static void main(String[] args) {
		SpringApplication.run(SpringBootCorsApplication.class, args);
	}
}

最后,即可同樣使用 mvn clean package -Dmaven.test.skip=true 命令打包應(yīng)用了,運(yùn)行命令后會(huì)在 target 目錄下生成 war 文件,將該文件放置于 Tomcat 的 webapps 目錄下運(yùn)行即可。

2.4 前端應(yīng)用部署

前端應(yīng)用的部署更加簡(jiǎn)單,我們直接在云服務(wù)器上下載 nginx 然后解壓。

打開網(wǎng)址 http://nginx.org/en/download.html ,點(diǎn)擊下圖中的鏈接下載即可。
圖片描述

nginx 下載鏈接

下載解壓后,將前端頁面直接放到 nginx/html 目錄下即可。當(dāng)然如果有很多網(wǎng)頁,可以先在該目錄下建立子目錄便于歸類網(wǎng)頁。

我們建立 shop-front 目錄(表示商城系統(tǒng)的前端項(xiàng)目),然后將網(wǎng)頁放入其中,效果如下:

圖片描述

商城系統(tǒng)前端項(xiàng)目目錄內(nèi)容

注意還需要修改 goods.html 中訪問的后端 URL 地址,假設(shè)云服務(wù)器的公網(wǎng) IP 為 x.x.x.x ,則修改為:

實(shí)例:

$.ajax({
      type: "GET",
      url: "http://x.x.x.x:8080/goods", //后端接口地址
      dataType: "json",
      contentType: "application/json; charset=utf-8",
      success: function (res) {
        $.each(res, function (i, v) {
          row = "<tr>";
          row += "<td>" + v.id + "</td>";
          row += "<td>" + v.name + "</td>";
          row += "<td>" + v.price + "</td>";
          row += "<td>" + v.pic + "</td>";
          row += "</tr>";
          $("#goodsTable").append(row);
        });
      },
      error: function (err) {
        console.log(err);
      }
    });

此處解釋下后端地址 http://x.x.x.x:8080/goods , HTTP 代表協(xié)議, x.x.x.x 代表云服務(wù)器公網(wǎng)地址, 8080 是我們后端項(xiàng)目的啟動(dòng)端口,由于我們沒有在配置文件中設(shè)置,所以默認(rèn)就是 8080 ,最后 goods 是控制器中設(shè)定的后端接口路徑。

雙擊 nginx.exe 啟動(dòng) nginx ,由于 nginx 默認(rèn)啟動(dòng)端口是 80 ,所以此時(shí)訪問 http://x.x.x.x ,效果如下,說明 nginx 啟動(dòng)成功!
圖片描述

nginx 已啟動(dòng)成功

2.5 測(cè)試

現(xiàn)在我們的后端 Spring Boot 應(yīng)用已啟動(dòng),前端項(xiàng)目也通過 nginx 啟動(dòng)起來。

我們?cè)跒g覽器地址欄打開 http://x.x.x.x/shop-front/goods.html ,效果如下,說明我們的項(xiàng)目全部部署成功。

圖片描述

項(xiàng)目部署成功后頁面顯示效果

3. 視頻演示

4. 小結(jié)

前后端分離部署的方式,更能發(fā)揮服務(wù)器的性能,如果要進(jìn)行版本升級(jí),直接替換后端 jar 或者前端項(xiàng)目文件夾即可,輕松愉快。