我写了个脚本试了一下,麻了。。。。。
1
gzk329 OP 改动需要外置,就是这个 springboot 的程序 jar 包不能动
|
2
sss15 2023-08-24 17:29:24 +08:00
nacos 配置中心动态刷新 可能是你需要的
|
3
selca 2023-08-24 17:33:22 +08:00
你把参数做成单例的变量呗
|
4
gzk329 OP java -jar springboot.jar --conf=value 每次变化的就是 value ,但是 spring 项目启动太慢了,想加快这个速度。但是这个 springboot.jar 又不是我的,所以对其内部的改动最好不要很大。
|
5
Foxkeh 2023-08-24 17:42:11 +08:00
这边建议您升级电脑配置
|
6
bill110100 2023-08-24 17:47:47 +08:00
配置中心?配置中心可以给需要热刷新的 configration 加一个注解,在收到配置修改的时候,对应 bean 会被重新装配一遍。
|
7
bill110100 2023-08-24 17:49:58 +08:00
@gzk329 你这个没可能,代码不是你的,鬼知道对应环境变量影响了多少功能。
|
8
starxg 2023-08-24 18:22:25 +08:00
|
9
Elilili 2023-08-24 18:27:04 +08:00
为什么楼上都在说配置中心啊
|
10
frank42a 2023-08-24 18:31:53 +08:00
放弃 SpringBoot ,用 Spring MVC 一样行
|
11
linyimin520812 2023-08-24 18:43:09 +08:00 via iPhone
可以看看 CDS: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html
顺便推荐一下我的启动耗时分析项目,无需修改代码,只需要添加个启动参数就能看到启动过程的耗时分析报告 https://github.com/linyimin0812/spring-startup-analyzer |
12
zjp 2023-08-24 19:59:49 +08:00 via Android
预先加载和提高启动速度不是矛盾的吗?
|
13
mmdsun 2023-08-24 21:46:31 +08:00
|
14
vitoliu 2023-08-24 22:17:25 +08:00
@linyimin520812 #11 这个牛啊,看起来很不错,我明儿个试试。
|
15
vitoliu 2023-08-24 22:23:16 +08:00
@linyimin520812 #11 有个问题,如果 PostConstruct 抛出异常了,正常情况下应该 shutdown 才对,异步加载抛出异常应该不会阻塞 spring 容器启动吧?这样会不会带着 bug 启动
|
16
zhiyu1998 2023-08-24 22:39:08 +08:00
@linyimin520812 学习了
|
17
richcat 2023-08-24 22:46:01 +08:00
CDS ,起码会加载的快
|
20
touchmii 2023-08-25 07:35:48 +08:00
@mmdsun native-image 是用 GraalVM 来完成的, 是我落伍了,简单的反射是支持的, 但是用到反射的框架不一定支持。
|
21
frank42a 2023-08-25 10:07:53 +08:00
@linyimin520812 非常不错
|
22
BQsummer 2023-08-25 11:24:52 +08:00
springboot 启动慢的原因是单线程初始化各种复杂业务相关的 bean 导致的吧, 加 cpu 能解决部分问题
|
23
BQsummer 2023-08-25 11:28:00 +08:00
或者试试 serveless 冷启动加速相关的技术, 比如 amazon 的 snapstart
|
24
linyimin520812 2023-08-27 15:08:06 +08:00
OP 用的什么版本的 JDK 呀?低版本的 CDS 只能作用与 Boot Class Loader 加载的类,不能作用于 App Class Loader 或者自定义的 Class Loader 加载的类。Java 10 中将 CDS 扩展为 AppCDS ,不止能够作用于 Boot Class Loader ,App Class Loader 和自定义的 Class Loader 也都能够起作用,大大加大了 CDS 的适用范围。
https://khotyn.com/blog/posts/2018-03-21-app-cds/ |
25
gzk329 OP @linyimin520812 用的是 JDK8
|
26
frank42a 2023-08-30 10:23:26 +08:00
JDK 8 可以用 CDS 吗?
|
27
linyimin520812 2023-09-07 12:41:38 +08:00
@vitoliu #15 谢谢提醒,试了一下,异步加载抛出异常会阻塞 Spring 容器启动,整个应用会启动失败
|
28
linyimin520812 2023-09-07 12:42:51 +08:00
@frank42a #26 JDK8 使用 CDS 的作用应该不大,毕竟只作用于 Boot Class Loader 加载的类
|