bootstrap.yml如何读取nacos配置中心的配置文件
作者:很懒的十六
bootstrap.yml读取nacos配置中心配置文件
最近搞nacos做为springboot的配置中心时,运行项目就一直报错,报错原因是没有加载到配置文件,可是nacos服务的地方又确确实实配置了配置文件,最后在启动的控制台中找到了一些线索,结合百度和源码查看找到了原因所在。
另外提一嘴,如果你导入了spring-cloud-starter-alibaba-nacos-config
依赖(如果是父模块导入,子模块也受作用),就必须配置bootstrap.yml这样的配置文件,不配置的话,运行代码会有报错,但不影响代码正常使用,只是会有控制台输出错误
ps:因为我看到错误就难受,哪怕是警告
线索:(ps:因为不知道怎么截横向的长图只能这样了)
项目启动时的控制台输出
写着需要 spring.application.name
.properties配置文件
后面找到了PropertySourceBootstrapConfiguration
类
应该是默认读取配置中心以properties为文件名后缀的配置文件,但是也可以更改,在bootstrap.yml配置文件中
如果在bootstrap.yml中添加了一行: spring.profiles.active=dev
spring: cloud: nacos: config: server-addr: localhost:8848 file-extension: yaml application: name: service-daily profiles: active: dev
那么在nacos配置中心的配置文件需要更改名字为:service-daily-dev.yaml
又找到一段源码,所以在file-extension
处配置yaml/yml都可,
但是如果file-extension
处配置yml,那么nacos配置文件中心的文件也得是服务名.yml
,yaml也如此
最后给出使用nacos时,需要一些依赖,如图:
依赖的版本交由父模块进行版本控制了(另附上依赖代码)
<!--spring-cloud nacos 服务注册--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--服务调用--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--代替 spring-cloud-config 的nacos-config --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
父模块的依赖管理
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency>
在resource目录下建一个bootstrap.yml配置文件,配置nacos的config信息,然后在nacos服务处新建一个配置文件,bootstrap.yml内容在上面已经给出了
总结
如有错误请指出,找的源码可能理解不太对。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。