Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2023.0.1.3版本 nacos使用最新方式spring.config.import无法加载配置,因为缺少 namespace 参数(而且加了也无效) #3907

Open
zxuanhong opened this issue Nov 28, 2024 · 10 comments

Comments

@zxuanhong
Copy link

zxuanhong commented Nov 28, 2024

1.Describe the bug
2023.0.1.3使用最新方式spring.config.import无法加载配置。因为缺少 namespace 参数,即使拼接namespace参数也无效,同时在NacosConfigDataResource中的NacosItemConfig也没有namespace字段信息

image image image

2.Log info

[up-realty-process] [           main] c.a.c.n.c.NacosConfigDataLoader          : [Nacos Config] config[dataId=up-realty-process-yplx.yml, group=DEFAULT_GROUP] is empty
[up-realty-process] [           main] c.a.c.n.c.NacosConfigDataLoader          : [Nacos Config] config[dataId=up-realty-process-yplx.yml, group=DEFAULT_GROUP] content: 
null

3.最后
把配置文件移动到 public 就正常了。。。这就更奇妙了,nacos 配置文件不支持命名空间了?????

image
@zxuanhong zxuanhong changed the title 2023.0.1.3使用最新方式spring.config.import无法加载配置,因为缺少 namespace 参数 2023.0.1.3版本 nacos使用最新方式spring.config.import无法加载配置,因为缺少 namespace 参数(而且加了也无效) Nov 28, 2024
@shiyiyue1102
Copy link
Contributor

通过 参数 spring.cloud.nacos.config.namespace=8d244d3a-xxxx-c9ace440d6f7 指定namespaceId,
如果是public命名空间,不需要设置这个参数

@shiyiyue1102
Copy link
Contributor

shiyiyue1102 commented Nov 28, 2024

namespace是全局性的一个参数,所以不需要在NacosItemConfig中体现

@zxuanhong
Copy link
Author

zxuanhong commented Nov 28, 2024

@shiyiyue1102 加了确实可以了,但是idea 提示配置文件字段信息不存在。是不是还有有点问题。而且是全局参数,那是不是 group 也可以那样配置
image

@zxuanhong
Copy link
Author

@shiyiyue1102 同时config.enabled开关无效,我本地开发很可能就不需要去读取配置中间的配置,直接用本地的。现在开关居然无效了

@shiyiyue1102
Copy link
Contributor

@shiyiyue1102 加了确实可以了,但是idea 提示配置文件字段信息不存在。是不是还有有点问题。而且是全局参数,那是不是 group 也可以那样配置 image

group并不是一个全局参数, 一个spring cloud alibaba应用启动时只能加载一个命名空间下的很多个配置,但这些配置可以有不同的group和dataId,统一在spring.config.import 中指定完整的dataId和group,尽量减少"默认",'潜规则’,比如默认加载{spring.applicaiton.name}.properties这类逻辑,可以减少维护成本和降低程序运行出错或者踩到bug的概率

@zxuanhong
Copy link
Author

@shiyiyue1102 以前是可以动态启用是否读取 nacos 配置文件的,那请教下现在怎么处理。以前我们是加了一个环节变量,然后 idea 配置环境变量的(总不能删来删去吧,好麻烦)。因为本地开发很可能就是不需要读取 nacos 配置文件
image

@shiyiyue1102
Copy link
Contributor

@shiyiyue1102 以前是可以动态启用是否读取 nacos 配置文件的,那请教下现在怎么处理。以前我们是加了一个环节变量,然后 idea 配置环境变量的(总不能删来删去吧,好麻烦)。因为本地开发很可能就是不需要读取 nacos 配置文件 image

这里我们确认下,如果是一个bug,在下一个版本中修复

@shiyiyue1102
Copy link
Contributor

@shiyiyue1102 以前是可以动态启用是否读取 nacos 配置文件的,那请教下现在怎么处理。以前我们是加了一个环节变量,然后 idea 配置环境变量的(总不能删来删去吧,好麻烦)。因为本地开发很可能就是不需要读取 nacos 配置文件 image

这里我们确认下,如果是一个bug,在下一个版本中修复

这里确实是重构过程中产生的bug,我们在下一个版本中修复

@zxuanhong
Copy link
Author

zxuanhong commented Nov 28, 2024

@shiyiyue1102 非常感谢,目前就两个问题(特别2,这会导致真不知道namespace 在哪配置,还以为像 group 那样直接拼接参数了)

  1. spring.cloud.nacos.config.enabled开关不生效
  2. spring.cloud.nacos.config.namespace在spring-configuration-metadata.json文件中没有生成,导致 idea 不提示

@shiyiyue1102
Copy link
Contributor

#3908

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants