nacos-group / nacos-spring-boot-project

Nacos ECO Project for Spring Boot
Apache License 2.0
789 stars 424 forks source link

@NacosConfigurationProperties注解中动态配置优先级太低被系统配置覆盖 #323

Closed nailcui closed 7 months ago

nailcui commented 8 months ago

Nacos 配置信息:

url: localhost:8080
username: nacos

复现代码:

@Data
@Configuration
@NacosConfigurationProperties(groupId = "production", dataId = "app-config.yaml", autoRefreshed = true)
public class MysqlConfiguration {

  private String url;

  private String username;

  @PostConstruct
  public void init() {
    System.out.println("mysql url : " + url);  # 输出: localhost:8080
    System.out.println("mysql name: " + username);  # 输出我的计算机名称: Dingyu.Cui
  }

}

在上面代码中,输出的配置信息不是 nacos 里的配置,而是我的本地电脑信息。

代码中,指定的配置文件优先级低于 systemPropertiessystemEnvironment

33fcd5dc29bde42a49a948a56c046c94

在这里我认为应该先以指定的 nacos 配置文件为准,以系统的环境信息为兜底更为合理

我将提交 pr 来修复这个问题

ilaotan commented 7 months ago

你了解下springboot的配置文件加载顺序,就是系统配置最高啊。

sN0wpeak commented 6 months ago

所以说这是预期的行为吗?用 NacosConfigurationProperties注解时,可以被本地的环境变量覆盖?