SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅

SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅

前言css

为了存个人小黄图,最近在作一款图床服务,集成了各类第三方云存储服务,目前正在内部测试阶段。项目是以Jar的形式运行在腾讯云上,不要问我为何使用腾讯云了,由于阿里云老用户和狗不得入内。html

SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅

问题凸显java

由于内测期间代码逻辑会常常变更,这就免不了从新打包上传,虽然家庭是百兆带宽,奈何云服务器上行带宽有限制啊,总有那么几分钟不开心。nginx

瘦身之旅程序员

瘦身前,项目差很少得 54MB 的样子,之后可能愈来愈肥胖!!!那怎么办? 程序员做为一个懒人职业,总会想到一些办法来搞定问题。spring

首先咱们正常打包,解压 Jar 包,把 BOOT-INF 目录下的 lib 目录拷贝出来,这个后面会用到。服务器

而后排除项目第三方依赖包,pom.xml 引入:maven

<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 的文件,不要问我为何还这么大,由于静态资源占了大部分,其实业务代码仅有几百KB而已。ide

你觉得这样就完了吗,显然没有。对于解压后十几兆的静态文件咱们彻底能够排除掉,pom.xml 继续引入:spring-boot

<!--
 排除静态资源
 爪哇笔记:https://blog.52itstyle.vip
-->
<resources>
 <resource>
 <filtering>true</filtering>
 <directory>src/main/resources</directory>
 <excludes>
 <exclude>static/**</exclude>
 </excludes>
 </resource>
</resources>

这时候 target 目录下生成的是一个仅仅有356KB的小东西!!!之后,不管什么云都是秒传了。

虽然项目秒传了,可是要想让它正常访问,咱们还须要作一步,把静态文件单独上传,放置到Nginx服务下,实现项目的动静分离。

server {
 listen 80;
 server_name www.cloudbed.vip;
 location / {
 proxy_pass http://127.0.0.1:8080;
 }
 #静态文件交给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

小结

从54MB到7.5MB再到356KB是否是爽翻了!!!编译速度也从十几秒降低到两三秒,基本上来讲是秒编。之后,若是须要变动业务逻辑,编译、打包、上传秒秒中搞定。对于程序员来讲,时间真的很宝贵,几秒中搞定的事情,绝对不能让它过度。

相关文章
相关标签/搜索