springboot引入远程nacos配置文件错误的解决方案
作者:勿语&
本文为解决Spring Cloud Alibaba中配置导入问题,提供了详细的步骤说明,包括引入依赖、配置nacos、创建bootstrap.yml文件以及测试配置导入是否成功的方法,帮助开发者快速解决相关问题
错误信息
如下:
- springboot版本:
<spring-boot.version>2.7.6</spring-boot.version>
- springcloud版本:
<spring-cloud.version>2021.0.3</spring-cloud.version>
- springcloudalibaba版本:
<spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
下面是解决上面问题的办法:
1. 引入依赖所需依赖
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies>
2. 远端nacos中的配置文件设置
3. 创建 bootstrap.yml
spring: application: name: nacos-config # 远程nacos的Data ID cloud: nacos: server-addr: 127.0.0.1:8848 # 远程nacos的ip地址 config: # namespace: 值为命名空间ID,不是命名空间名称 file-extension: yaml #指定远程文件的格式 # 如果服务名和远程的Data ID不同,可以通过以下方式来引入多个远程文件 extension-configs: - data-id: mysql-config.yml refresh: true - data-id: redis-config.yml refresh: true
4. 测试是否导入配置成功
@SpringBootApplication public class NacosConfigApplication { public static void main(String[] args) throws InterruptedException { ConfigurableApplicationContext context = SpringApplication.run(NacosConfigApplication.class, args); while (true){ String name = context.getEnvironment().getProperty("user.name"); String age = context.getEnvironment().getProperty("user.age"); System.out.println("name="+name+"\t age="+age); TimeUnit.SECONDS.sleep(2); } } }
5. 测试成功
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。