springboot服务启动读取不到application.yml中的nacos.config信息

我的版本:

可以添加bootstrap.yml文件,在里面添加nacos.config的配置信息

也可以添加VM参数

-Dspring.cloud.nacos.discovery.server-addr=
-Dspring.cloud.nacos.config.server-addr=
-Dspring.cloud.nacos.config.namespace=
-Dspring.cloud.nacos.discovery.namespace=
-Dspring.cloud.nacos.discovery.group=DEFAULT_GROUP
-Dspring.cloud.nacos.username=
-Dspring.cloud.nacos.password=

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题分析: 根据描述,应用程序使用 `@ConfigurationProperties` 注解读取 Redisson 的配置信息,而 Redisson 的配置信息存储在 Nacos 。但是应用程序只能读取到本地的 `application.yml` 文件的配置信息,无法读取Nacos 的配置信息。 原因分析: 应用程序只能读取到本地的 `application.yml` 文件的配置信息,是因为在默认情况下,Spring Boot 只会加载本地的配置文件。而 `spring.config.import` 属性只是将远程配置文件导入到了本地的配置文件,但并不会自动覆盖本地配置文件的配置信息。 解决方案: 1. 使用 Nacos 提供的 API 读取配置信息,并手动注入到应用程序。 这种方式需要自己编写代码实现,比较麻烦。具体的实现方式可以参考 Nacos 官方文档。 2. 使用 Spring Cloud Alibaba Nacos Config 提供的功能自动读取配置信息Spring Cloud Alibaba Nacos Config 提供了自动读取 Nacos 配置信息的功能,只需要在应用程序添加相应的依赖和配置即可。 具体步骤如下: (1)在 `pom.xml` 添加依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` (2)在 `application.yml` 添加配置: ```yaml spring: cloud: nacos: config: server-addr: ${nacos.server-addr} namespace: ${nacos.namespace} group: ${nacos.group} refreshable-dataids: ${nacos.config.refreshable-dataids} ``` 其,`${nacos.server-addr}`、`${nacos.namespace}`、`${nacos.group}` 和 `${nacos.config.refreshable-dataids}` 是在 Nacos 配置的参数,具体的值可以根据实际情况进行设置。 (3)在应用程序注入配置信息: ```java @Component @ConfigurationProperties(prefix = "redisson") public class RedissonProperties { private String address; private String password; // 省略 getter 和 setter } ``` 这样,就可以自动将 Nacos 的 Redisson 配置信息注入到 `RedissonProperties` 类了。 3. 使用 Spring Cloud Alibaba Nacos Config 提供的功能自动覆盖本地配置信息。 这种方式需要将本地配置文件的 Redisson 配置信息删除,从而强制应用程序从 Nacos 读取配置信息。具体步骤如下: (1)在 `pom.xml` 添加依赖和插件: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <addResources>true</addResources> </configuration> </plugin> </plugins> </build> ``` (2)在 `bootstrap.yml` 添加配置: ```yaml spring: cloud: nacos: config: server-addr: ${nacos.server-addr} namespace: ${nacos.namespace} group: ${nacos.group} refreshable-dataids: ${nacos.config.refreshable-dataids} ``` 与前面的方式相比,这里使用的是 `bootstrap.yml` 文件,而不是 `application.yml` 文件。这是因为 `bootstrap.yml` 文件会比 `application.yml` 文件先加载,因此可以保证应用程序在启动时从 Nacos 读取配置信息。 (3)删除本地配置文件的 Redisson 配置信息。 这里需要删除本地配置文件的 `redisson` 前缀的配置项。如果不删除,应用程序可能会优先读取本地配置文件的配置信息。 (4)在应用程序注入配置信息: ```java @Component @ConfigurationProperties(prefix = "redisson") public class RedissonProperties { private String address; private String password; // 省略 getter 和 setter } ``` 这样,就可以自动从 Nacos 读取 Redisson 配置信息了。 总结: 以上三种方式都可以实现从 Nacos 读取配置信息。其,第一种方式需要自己编写代码实现,比较麻烦;第二种方式可以自动注入配置信息,但需要保留本地配置文件的其他配置项;第三种方式可以完全覆盖本地配置文件的配置信息,但需要删除本地配置文件的 Redisson 配置信息。具体使用哪种方式,可以根据实际情况选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值