溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBoot 2.0 開發(fā)案例之百倍級減肥瘦身之旅

發(fā)布時間:2020-04-01 06:03:04 來源:網(wǎng)絡(luò) 閱讀:283 作者:wx5d6cccb1cb158 欄目:編程語言

SpringBoot 2.0 開發(fā)案例之百倍級減肥瘦身之旅

前言

為了存我的小黃圖,最近在做一款圖床服務(wù),集成了各種第三方云存儲服務(wù),目前正在內(nèi)部測試階段。項目是以Jar的形式運行在騰訊云上,不要問我為什么使用騰訊云了,因為阿里云老用戶和狗不得入內(nèi)。

SpringBoot 2.0 開發(fā)案例之百倍級減肥瘦身之旅

問題凸顯

因為內(nèi)測期間代碼邏輯會經(jīng)常變動,這就免不了重新打包上傳,雖然家庭是百兆帶寬,奈何云服務(wù)器上行帶寬有限制啊,總有那么幾分鐘不開心。

瘦身之旅

瘦身前,項目差不多得 54MB 的樣子,以后可能越來越肥胖!??!那怎么辦? 程序員作為一個懶人職業(yè),總會想到一些辦法來搞定問題。

首先我們正常打包,解壓 Jar 包,把 BOOT-INF 目錄下的 lib 目錄拷貝出來,這個后面會用到。

然后排除項目第三方依賴包,pom.xml 引入:

<plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 <configuration>
 <mainClass>com.itstyle.picture.Application</mainClass>
 <layout>ZIP</layout>
 <!--排除項目第三方依賴包-->
 <includes>
 <include>
 <groupId>nothing</groupId>
 <artifactId>nothing</artifactId>
 </include>
 </includes>
 </configuration>
 <executions>
 <execution>
 <goals>
 <goal>repackage</goal>
 </goals>
 </execution>
 </executions>
</plugin>

打包完成之后,target 目錄下生成了一個僅有 7.5MB 的文件,不要問我為什么還這么大,因為靜態(tài)資源占了大部分,其實業(yè)務(wù)代碼僅有幾百KB而已。

你以為這樣就完了嗎,顯然沒有。對于解壓后十幾兆的靜態(tài)文件我們完全可以排除掉,pom.xml 繼續(xù)引入:

<!--
 排除靜態(tài)資源
 爪哇筆記:https://blog.52itstyle.vip
-->
<resources>
 <resource>
 <filtering>true</filtering>
 <directory>src/main/resources</directory>
 <excludes>
 <exclude>static/**</exclude>
 </excludes>
 </resource>
</resources>

這時候 target 目錄下生成的是一個僅僅有356KB的小東西?。?!以后,無論什么云都是秒傳了。

雖然項目秒傳了,但是要想讓它正常訪問,我們還需要做一步,把靜態(tài)文件單獨上傳,放置到Nginx服務(wù)下,實現(xiàn)項目的動靜分離。

server {
 listen 80;
 server_name www.cloudbed.vip;
 location / {
 proxy_pass http://127.0.0.1:8080;
 }
 #靜態(tài)文件交給nginx處理
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ioc|rar|
 zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
 {
 root /cloudbed/static;
 expires 30d;
 }
 location ~ .*\.(js|css)?$
 {
 root /cloudbed/static;
 expires 1h;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
}

運行

把 lib 目錄和瘦身的 Jar 包,上傳到項目目錄下,運行下面命令:

java -Dloader.path=/cloudbed/lib -jar /cloudbed/cloudbed.jar

小結(jié)

從54MB到7.5MB再到356KB是不是爽翻了?。。【幾g速度也從十幾秒下降到兩三秒,基本上來說是秒編。以后,如果需要變更業(yè)務(wù)邏輯,編譯、打包、上傳秒秒中搞定。對于程序員來說,時間真的很寶貴,幾秒中搞定的事情,絕對不能讓它過分。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI