disconf icon indicating copy to clipboard operation
disconf copied to clipboard

disconf托管配置文件,启动项目时先读配置文件再注入

Open agentch opened this issue 8 years ago • 8 comments

spring boot项目,disconf托管数据库配置文件,第一次启动项目时,如果本地配置文件为空,会读取不到配置信息,请问这是我配置disconf错误还是disconf修改配置文件时才能即时生效?

agentch avatar Dec 03 '16 08:12 agentch

+1

zjx123 avatar Dec 16 '16 07:12 zjx123

我现在根本没法用,看后台日志是先下载了配置文件到本地,但是接着就会加载配置的实体类,这个时候实体类如果依赖了配置类,配置类这个时候还没有被设置值,获取到的配置就是null,导致其它类初始化失败,项目启动不来。

jakyou avatar Mar 17 '17 09:03 jakyou

@jakyou 所以你现在解决了吗??我也遇到了这个问题。。。

Alexdevlin avatar Apr 17 '17 09:04 Alexdevlin

同遇到此问题

lvdelu avatar May 16 '17 02:05 lvdelu

Thread.sleep(5000); 在初始化完disconf之后添加该方法,延时一段时间后对后面的实体类进行加载. 测试过,哪怕项目里一个配置文件都没有,也能正常下载,加载并启动项目

lngg057 avatar May 23 '17 10:05 lngg057

Thread.sleep(5000); 在初始化完disconf之后添加该方法,延时一段时间后对后面的实体类进行加载. 能提供相关的demo吗 @lngg057

chshzh2000 avatar Dec 21 '18 02:12 chshzh2000

除Thread.sleep(5000)这种方式外,有没有其它解决方式!

xiaoxiaoleng avatar Jan 24 '19 08:01 xiaoxiaoleng

这种情况一般是第二阶段扫描靠后了,配置的时候把第二阶段扫描加上name @Bean(name = "disconfMgrBeanSecond",destroyMethod = "destroy", initMethod = "init") public DisconfMgrBeanSecond getDisconfMgrBean2() { System.out.println("method getDisconfMgrBean2"); return new DisconfMgrBeanSecond(); }

然后再在实体类上面加上@DependsOn 控制加载顺序,类似下面 @DependsOn("disconfMgrBeanSecond") public class RedisProperties { }

zeody avatar Apr 30 '19 09:04 zeody