最近搞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内容在上面已经给出了

在这里插入图片描述
如有错误请指出,找的源码可能理解不太对。

GitHub 加速计划 / na / nacos
29.83 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16 * Support custom client configuration timeout.(#12748) * Add UT.(#12748) 12 天前
b04d2266 16 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐