SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅
2019-11-04 09:32:06来源:博客园 阅读 ()
SpringBoot 2.0 开发案例之百倍级减肥瘦身之旅
前言
为了存我的小黄图,最近在做一款图床服务,集成了各种第三方云存储服务,目前正在内部测试阶段。项目是以Jar的形式运行在腾讯云上,不要问我为什么使用腾讯云了,因为阿里云老用户和狗不得入内。
问题凸显
因为内测期间代码逻辑会经常变动,这就免不了重新打包上传,虽然家庭是百兆带宽,奈何云服务器上行带宽有限制啊,总有那么几分钟不开心。
瘦身之旅
瘦身前,项目差不多得54MB
的样子,以后可能越来越肥胖!!!那怎么办? 程序员作为一个懒人职业,总会想到一些办法来搞定问题。
首先我们正常打包,解压 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
的文件,不要问我为什么还这么大,因为静态资源占了大部分,其实业务代码仅有几百KB而已。
你以为这样就完了吗,显然没有。对于解压后十几兆的静态文件我们完全可以排除掉,pom.xml
继续引入:
<!--
排除静态资源
爪哇笔记: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
是不是爽翻了!!!编译速度也从十几秒下降到两三秒,基本上来说是秒编。以后,如果需要变更业务逻辑,编译、打包、上传秒秒中搞定。对于程序员来说,时间真的很宝贵,几秒中搞定的事情,绝对不能让它过分。
原文链接:https://www.cnblogs.com/smallSevens/p/11790394.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Java向服务器上传图片
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash