什么是瘦身 瘦身: thinBody 又称 “减肥”、”减重”。 就是合理、科学的减轻自身重量的。SpringBoot 应用瘦身顾名思议:就是将 SpringBoot 应用打包的 jar 利用合理的方式、方法减小体积。
为什么瘦身 场景: 现有的应用开发中,不论是单体架构、微服务架构,如果项目采用的是 springboot、springcloud 来作为底层框架,打包时最终都会以jar包的方式打包、部署。这是就会面临一个问题,就是 jar 包非常大,单体应用还好,但是如果是微服务就非常痛苦,几十个微服务就要拆分打包几十个 jar 包,每个 jar 包都很大(几百M),合起来就好几个 GB,非常占用空间。如果是内网部署,遇到动辄GB的升级包还能勉强接受,最多就是运维心里默默地吐槽一下,但是如果在外网云环境、或者客户现场,那令人痛不欲生的带宽加上各种网络转换限制,运维心里各种🐴。因为这个你的领导又给你各种批头盖脸一顿。
你觉得很委屈😢,确实不是你的代码问题,但是这确实是我们该考虑的。因此呢?基于以上原因我们要为项目进行瘦身!
如何瘦身 瘦身思路
创建应用,打包查看
引入依赖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 <build > <plugins > <plugin > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-maven-plugin</artifactId > <configuration > <excludes > <exclude > <groupId > org.projectlombok</groupId > <artifactId > lombok</artifactId > </exclude > </excludes > <mainClass > com.xiaofei.generator.XiaofeiGeneratorApplication</mainClass > <jvmArguments > -Dfile.encoding=UTF-8</jvmArguments > <layout > ZIP</layout > <includes > <include > <groupId > non-exists</groupId > <artifactId > non-exists</artifactId > </include > </includes > </configuration > <executions > <execution > <id > repackage</id > <goals > <goal > repackage</goal > </goals > </execution > </executions > </plugin > <plugin > <groupId > org.apache.maven.plugins</groupId > <artifactId > maven-dependency-plugin</artifactId > <executions > <execution > <id > copy-dependencies</id > <phase > package</phase > <goals > <goal > copy-dependencies</goal > </goals > <configuration > <outputDirectory > ${project.build.directory}/lib</outputDirectory > <excludeTransitive > false</excludeTransitive > <stripVersion > false</stripVersion > <includeScope > runtime</includeScope > </configuration > </execution > </executions > </plugin > </plugins > </build >
瘦身后查看
如何运行 1 java -jar -Dloader.path=./lib xxx.jar