disconf
disconf copied to clipboard
disconf托管配置文件,启动项目时先读配置文件再注入
spring boot项目,disconf托管数据库配置文件,第一次启动项目时,如果本地配置文件为空,会读取不到配置信息,请问这是我配置disconf错误还是disconf修改配置文件时才能即时生效?
+1
我现在根本没法用,看后台日志是先下载了配置文件到本地,但是接着就会加载配置的实体类,这个时候实体类如果依赖了配置类,配置类这个时候还没有被设置值,获取到的配置就是null,导致其它类初始化失败,项目启动不来。
@jakyou 所以你现在解决了吗??我也遇到了这个问题。。。
同遇到此问题
Thread.sleep(5000); 在初始化完disconf之后添加该方法,延时一段时间后对后面的实体类进行加载. 测试过,哪怕项目里一个配置文件都没有,也能正常下载,加载并启动项目
Thread.sleep(5000); 在初始化完disconf之后添加该方法,延时一段时间后对后面的实体类进行加载. 能提供相关的demo吗 @lngg057
除Thread.sleep(5000)这种方式外,有没有其它解决方式!
这种情况一般是第二阶段扫描靠后了,配置的时候把第二阶段扫描加上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 { }