springboot nacos2.1 config获取不到配置信息-The preload configuration is not enabled-dubbo2.7升级到dubbo3系列
nacos
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
项目地址:https://gitcode.com/gh_mirrors/na/nacos
免费下载资源
·
最近在做老系统升级(springboot2+dubbo2.7.1+zookeeper+nacos-config),去掉zookeeper的注册中心,替换成nacos2.1版本(阿里云已经不支持1.X版本了)-对应的需要升级springboot和dubbo3。最终升级完成了,其中遇到的诸多问题,能记住多少就总结多少
有在升级过程中,遇到问题的小伙伴,欢迎交流。
问题
springboot:2.3.1,nacos:2.1,nacos-config-spring-boot-starter:0.2.10
springboot nacos2.1 config获取不到配置信息,报错
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'yamlReadBean': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'dubbo.scan.base-packages' in value "${dubbo.scan.base-packages}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:405) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
这个报错只是获取不到配置信息,但是确实有配置,
从springboot启动日志查找发现
解决
其实,就是按照日志查,可能会出现的问题
然后去查了下源码:NacosConfigApplicationContextInitializer
public void initialize(ConfigurableApplicationContext context) {
this.singleton.setApplicationContext(context);
this.environment = context.getEnvironment();
this.nacosConfigProperties = NacosConfigPropertiesUtils.buildNacosConfigProperties(this.environment);
NacosConfigLoader configLoader = new NacosConfigLoader(this.nacosConfigProperties, this.environment, this.builder);
if (!this.enable()) {
this.logger.info("[Nacos Config Boot] : The preload configuration is not enabled");
} else if (this.processor.enable()) {
this.processor.publishDeferService(context);
configLoader.addListenerIfAutoRefreshed(this.processor.getDeferPropertySources());
} else {
configLoader.loadConfig();
configLoader.addListenerIfAutoRefreshed();
}
ConfigurableListableBeanFactory factory = context.getBeanFactory();
if (!factory.containsSingleton("globalNacosProperties")) {
factory.registerSingleton("globalNacosProperties", configLoader.buildGlobalNacosProperties());
}
}
private boolean enable() {
return this.processor.enable() || this.nacosConfigProperties.getBootstrap().isEnable();
}
去看下配置,有一个成员变量是有bootstarp的属性,然后yaml文件试了一下,需要配置的是nacos.config bootstrap.enable=true,就好了
完成yaml配置
nacos:
config:
server-addr: ip:8848
namespace: 2c047fc5-bcf4-47eb-a9ce-f8ef353c49e4
bootstrap:
enable: true
type: yaml
data-id: xxx-xxx-provider
auto-refresh: true
GitHub 加速计划 / na / nacos
29.83 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16
* Support custom client configuration timeout.(#12748)
* Add UT.(#12748) 12 天前
b04d2266
16 天前
更多推荐
已为社区贡献2条内容
所有评论(0)