Spring Boot启动速度慢的原因总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot启动速度慢的原因总结相关的知识,希望对你有一定的参考价值。

参考技术A

现在spring boot的架构可以说是非常流行,不会你都不好意思说你是做java的。可是它火归火,也有一些小问题需要咱们去注意。
如果是单体项目,并且在启动速度方面没有任何要求,那么请忽略。
下面进入主题,在什么情况下spring boot的项目启动会变慢呢

启动项目的机器硬件配置不能拖后腿,否则你说项目启动慢,项目还觉得机器不行呢…
比如网络,内存大小,CPU核心数等,不要求太高,至少也要够用吧

抛开各种人为因素,例如各种连接时间较长,其他组件启动较慢导致等待…

项目中使用的无用配置太多 。例如在一个最简单的web中,你还加入了其他各种maven配置,并且将他们配置到项目中(只是比较夸张的例子,这些配置加入都不用),然后项目本身也不懂,既然你配置了,那就加载呗。一个花0.1秒,10个就1秒,100个就10秒了…以此类推,这一点就是最容易想明白的地方了。

spring boot的自动配置 。自动配置是spring boot的一个特色,但是也是它启动慢的一个弊病。没办法,通常好用功能全的东西,总会在一些地方上有缺陷。上面说到无用的配置多,这里要说的就是spring boot它自己装配的东西太多。你可以看到在spring boot的相关jar包里,都存放着spring.factories的文件,进去一看,大部分都是写了很多的类,它是实现spring boot自动装配的核心之一。但是你仔细观察会发现,其实有很多类,你可能完全不用。但有什么办法呢,不管你用不用,至少它都会给你检查一遍,这不也是花时间的地方吗?

项目精简程度不够 。现在比较流行微服务的概念,我认为它的概念核心含义即为精简,单一,并且多数需要强调启动速度的地方也多是出自微服务的项目中。一个微服务项目中,最好是在10秒以内能够启动完毕。但是多数是做不到的,原因在于项目拆分的还不够细。你说一个接口启动快,还是10个快,或是更多,答案很明显。很多项目做到了大而全,所谓大而全就是功能很多,配置很齐全,各种可以扩展配置等,全面的不行不行的,但这意味着什么,你的配置多,有用没用先不管,至少需要编译和加载的类文件都会多出很多来,你说要这样的项目能启动快,怎么能启动快呢?

此次分享就到这里,欢迎大家的讨论。

看我如何解决Mac系统启动Spring Boot项目速度慢的问题

1 前言

最近公司里面使用mac系统,发现一个很有意思的问题,我在家里windows环境下,调试spring boot项目时,启动非常快,到了公司使用mac系统启动项目,非常慢,如果找到了一个解决方案,可以大大提高Mac下Spring Boot项目的启动速度,这里给小伙伴分享一下~

2 获取mac系统的电脑名称

同时按下command+空格键,打开聚焦搜索,输入终端,在终端里面输入命令:

hostname

会出现类似userName-MacBook-Pro.local的名称

3 修改并配置 /etc/hosts 文件

打开并修改/etc/hosts文件:

sudo vi /etc/hosts

修改之前的内容大致如下:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       org.cat
255.255.255.255 broadcasthost
::1             localhost

修改之后的内容大致如下:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       org.cat
255.255.255.255 broadcasthost
::1             localhost 你的机器名.local

修改的内容很简单,只需要在最后一行,添加hostname的映射即可,比如笔者,在最后一行localhost,添加了我的电脑名 userName-MacBook-Pro.local,修改了hosts文件之后,原来需要十几秒启动,现在2s就可以启动了。

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

以上是关于Spring Boot启动速度慢的原因总结的主要内容,如果未能解决你的问题,请参考以下文章

看我如何解决Mac系统启动Spring Boot项目速度慢的问题

看我如何解决Mac系统启动Spring Boot项目速度慢的问题

看我如何解决Mac系统启动Spring Boot项目速度慢的问题

Centos 启动Spring boot项目慢的原因

如何提高 Spring Boot 应用的启动速度

如何提高 Spring Boot 应用的启动速度