一个 Springboot 程序,可以快速启动吗?除了运行参数会有变化,其他都不变,希望把其他部分预先加载了,提高启动速度

2023-08-24 17:27:36 +08:00
 gzk329
3315 次点击
所在节点    Java
28 条回复
gzk329
2023-08-24 17:28:10 +08:00
改动需要外置,就是这个 springboot 的程序 jar 包不能动
sss15
2023-08-24 17:29:24 +08:00
nacos 配置中心动态刷新 可能是你需要的
selca
2023-08-24 17:33:22 +08:00
你把参数做成单例的变量呗
gzk329
2023-08-24 17:34:50 +08:00
java -jar springboot.jar --conf=value 每次变化的就是 value ,但是 spring 项目启动太慢了,想加快这个速度。但是这个 springboot.jar 又不是我的,所以对其内部的改动最好不要很大。
Foxkeh
2023-08-24 17:42:11 +08:00
这边建议您升级电脑配置
bill110100
2023-08-24 17:47:47 +08:00
配置中心?配置中心可以给需要热刷新的 configration 加一个注解,在收到配置修改的时候,对应 bean 会被重新装配一遍。
bill110100
2023-08-24 17:49:58 +08:00
@gzk329 你这个没可能,代码不是你的,鬼知道对应环境变量影响了多少功能。
starxg
2023-08-24 18:22:25 +08:00
解决方案还是有的,花钱。https://www.azul.com/products/components/readynow
Elilili
2023-08-24 18:27:04 +08:00
为什么楼上都在说配置中心啊
frank42a
2023-08-24 18:31:53 +08:00
放弃 SpringBoot ,用 Spring MVC 一样行
linyimin520812
2023-08-24 18:43:09 +08:00
可以看看 CDS: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html


顺便推荐一下我的启动耗时分析项目,无需修改代码,只需要添加个启动参数就能看到启动过程的耗时分析报告 https://github.com/linyimin0812/spring-startup-analyzer
zjp
2023-08-24 19:59:49 +08:00
预先加载和提高启动速度不是矛盾的吗?
mmdsun
2023-08-24 21:46:31 +08:00
vitoliu
2023-08-24 22:17:25 +08:00
@linyimin520812 #11 这个牛啊,看起来很不错,我明儿个试试。
vitoliu
2023-08-24 22:23:16 +08:00
@linyimin520812 #11 有个问题,如果 PostConstruct 抛出异常了,正常情况下应该 shutdown 才对,异步加载抛出异常应该不会阻塞 spring 容器启动吧?这样会不会带着 bug 启动
zhiyu1998
2023-08-24 22:39:08 +08:00
@linyimin520812 学习了
richcat
2023-08-24 22:46:01 +08:00
CDS ,起码会加载的快
touchmii
2023-08-24 23:20:29 +08:00
@mmdsun 没有反射是可以的,不过那就不是 Java 了
mmdsun
2023-08-24 23:31:54 +08:00
@touchmii
我从两年前开始用都一直都支持反射,不知道没有反射是什么意思,可能是配置不对?
touchmii
2023-08-25 07:35:48 +08:00
@mmdsun native-image 是用 GraalVM 来完成的, 是我落伍了,简单的反射是支持的, 但是用到反射的框架不一定支持。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/968039

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX