nacos默认分组名称无法覆盖

Blade 已结 2 1654
dp9212
dp9212 2020-10-10 17:00

一、该问题的重现步骤是什么?

  1. nacos中配置文件的分组名称不是默认值,nacos版本1.3.2,尝试了加namespace和不加,都是一样

  2. 启动任意工程,无法获取nacos中配置文件的属性,具体错误看最后一图(使用默认分组名称DEFAULT_GROUP没有问题)

24GQTRDT2SWJ}W[)UDTAE]I.png

AU94VLJGR_C3~$S2J37R3~Y.png

OC}37`E%X[LJCG$Q5)NKSQU.png

8C6SP3%V[~$KTE1OFR5{$YU.png设置了 GROUP 的名称,前面两个依然是默认的 DEFAULT_GROUP,导致无法获取配置



二、你期待的结果是什么?实际看到的又是什么?

希望通过属性注入或者配置能覆盖默认值,也就是改掉上图红框中的值


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex商业版,2.6.0,windows 10


四、请提供详细的错误堆栈信息,这很重要。

(_J4NB16(F%4ZI_4[2{EMG7.png

五、若有更多详细信息,请在下面提供。

2条回答
  •  admin
    admin (楼主)
    2020-10-11 23:14

    blade.yaml和blade-dev.yaml是通过spring.cloud.nacos.config.shared-dataids来配置的,优先级最低,属于DEFAULT_GROUP

    而例如blade-auth.yaml、blade-auth-dev.yaml是与服务名绑定的配置,可以通过配置group来指定

    如果你需要blade.yaml和blade-dev.yaml也可以指定group,那可以通过如下配置实现


    PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].data-id", NacosConstant.dataId("blade", profile));

    PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].group", NacosConstant.NACOS_CONFIG_GROUP);

    PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].refresh", NacosConstant.NACOS_CONFIG_REFRESH);


    @AutoService(LauncherService.class)
    public class DemoLauncherServiceImpl implements LauncherService {
    
       @Override
       public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) {
          Properties props = System.getProperties();
          PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].data-id", NacosConstant.dataId("blade", profile));
          PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].group", NacosConstant.NACOS_CONFIG_GROUP);
          PropsUtil.setProperty(props, "spring.cloud.nacos.config.ext-config[0].refresh", NacosConstant.NACOS_CONFIG_REFRESH);
          
          PropsUtil.setProperty(props, "spring.cloud.nacos.config.namespace", LauncherConstant.NACOS_NAMESPACE);
          PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.namespace", LauncherConstant.NACOS_NAMESPACE);
          PropsUtil.setProperty(props, "spring.cloud.nacos.config.group", NacosConstant.NACOS_CONFIG_GROUP);
          PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.group", NacosConstant.NACOS_CONFIG_GROUP);
       }
    
       @Override
       public int getOrder() {
          return 20;
       }
    }


提交回复