SpringBoot瘦身

1. 什么是瘦身

SpringBoot应用瘦身指的是:将SpringBoot应用打包利用合理的方式减小体积。

2. 为什么要瘦身

现有的应用开发中,springboot作为底层框架,打包时最终都会以jar包的方式打包、部署。这时就会面临一个问题,**因为引入很多的第三方依赖 ** jar包的体积非常大,单体应用还好,但是微服务是,几十个微服务都要打包成jar包,每个jar包都有几百兆,非常占用空间,如果在云环境或者客户现场部署,会非常崩溃,所以需要瘦身。

3. 怎么瘦身

瘦身思路:
经常需要发生改变的是业务代码,引入的依赖很少发生改变,所以可以把这两部分分开来打包部署。
在这里插入图片描述

3.1 通过maven瘦身

可以在打包的时候,将当前应用需要的第三方依赖拷贝到某一个目录。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<version>3.1.1</version>
	<executions>
		<execution>
			<id>copy-dependencies</id>
			<phase>package</phase>
			<goals>
				<goal>copy-dependencies</goal>
			<goals>
			<configuration>
				<outputDirectory>${project.build.directory}/lib</outputDirectory>
				<!--是否排除传递性-->
				<excloudeTransitive>false</excloudeTransitive>
				<!--是否去掉jar包版本信息-->
				<stripVersion>false</stripVersion>
				<!--包含范围-->
				<includeScope>runtime</includeScope>
			</configuration>
		</execution>
	</executins>
</plugin>

通过这个插件也只能将第三方的依赖单独打包,但是目前还不能从JAR包中分离第三方的依赖。
所以需要对SpringBoot的maven插件进行修改

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<version>2.6.1</version>
	<configuration>
		<mainClass>com.software.SoftWebApiApplication</mainClass>
		<!--解决windows命令行窗口中文乱码-->
		<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
		<layout>ZIP</layout>
		<!--配置需要打包进项目的jar-->
		<includes>
			<!--这里填写需要包含进去的jar,
				必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来,如果没有则non-exists,表示不打包依赖
				如果使用maven多模块聚合,在开发业务时会有一些自己开发的common,那就可以将自己的common加入进来,填入common的组织和项目名就可以了-->
				<include>
					<groupId>non-exists</groupId>
					<artifactId>non-exists</artifactId>
				</include>
		</includes>
	</configuration>
	<executions>
		<execution>
			<id>repackage</id>
			<goals>
				<goal>repackage</goal>
			</goals>
		</execution>
	</executins>	
</plugin>

3.2 如何运行分开的jar

java -jar -Dloader.path="/lib" xxx.jar

//因为第三方单独打包出来的jar包放在了lib目录下
例:java -jar -Dloader.path=./lib soft-web-api.jar
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值