SpringBoot2.0开发案例之百倍级减肥瘦身之旅

时间:2019-11-04 09:54:52   热度:37.1℃   作者:网络

原标题:SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅

前言

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

问题凸显

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

瘦身之旅

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

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

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

  1. <plugin>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-maven-plugin</artifactId>
  4. <configuration>
  5. <mainClass>com.itstyle.picture.Application</mainClass>
  6. <layout>ZIP</layout>
  7. <!--
  8. 排除项目第三方依赖包
  9. 爪哇笔记:https://blog.52itstyle.vip
  10. -->
  11. <includes>
  12. <include>
  13. <groupId>nothing</groupId>
  14. <artifactId>nothing</artifactId>
  15. </include>
  16. </includes>
  17. </configuration>
  18. <executions>
  19. <execution>
  20. <goals>
  21. <goal>repackage</goal>
  22. </goals>
  23. </execution>
  24. </executions>
  25. </plugin>

打包完成之后, target目录下生成了一个仅有 7.5MB的文件,不要问我为什么还这么大,因为静态资源占了大部分,其实业务代码仅有几百KB而已。

你以为这样就完了吗,显然没有。对于解压后十几兆的静态文件我们完全可以排除掉, pom.xml继续引入:

  1. <!--
  2. 排除静态资源
  3. 爪哇笔记:https://blog.52itstyle.vip
  4. --
  5. <resources>
  6. <resource>
  7. <filtering>true</filtering>
  8. <directory>src/main/resources</directory>
  9. <excludes>
  10. <exclude>static/**</exclude>
  11. </excludes>
  12. </resource>
  13. </resources>

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

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

  1. server {
  2. listen 80;
  3. server_name www.cloudbed.vip;
  4. location / {
  5. proxy_pass http://127.0.0.1:8080;
  6. }
  7. #静态文件交给nginx处理
  8. location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ioc|rar|
  9. zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
  10. {
  11. root /cloudbed/static;
  12. expires 30d;
  13. }
  14. location ~ .*.(js|css)?$
  15. {
  16. root /cloudbed/static;
  17. expires 1h;
  18. }
  19. error_page 500 502 503 504 /50x.html;
  20. location = /50x.html {
  21. root html;
  22. }
  23. }
运行

lib目录和瘦身的 Jar包,上传到项目目录下,运行下面命令:

  1. java -Dloader.path=/cloudbed/lib -jar /cloudbed/cloudbed.jar
小结

54MB7.5MB再到 356KB是不是爽翻了!!!编译速度也从十几秒下降到两三秒,基本上来说是秒编。以后,如果需要变更业务逻辑,编译、打包、上传秒秒中搞定。对于程序员来说,时间真的很宝贵,几秒中搞定的事情,绝对不能让它过分。

上一篇: 128元30G流量,结果只能用不到1小时...

下一篇: 我麻麻最近爱上了刷抖音,宝贝们不要乱评论...


 本站广告