iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Nacos配置中心之引用不到配置文件问题
  • 139
分享到

Nacos配置中心之引用不到配置文件问题

javaspringboot开发语言 2023-09-15 22:09:13 139人浏览 安东尼
摘要

文章目录 一、Springboot中application.yml、application.properties和bootStrap.yml的加载顺序二、问题原因三、nacos配置中心读取不到

文章目录

一、SpringBoot中application.yml、application.properties和bootStrap.yml的加载顺序

springApplication位于项目根目录,所以所有得代码要和SpringApplication所在目录平级或下一级

jar包发布springboot项目时,默认会先使用jar包跟目录下的application.properties来作为项目配置文件。
如果在不同的目录中存在多个配置文件,它的读取顺序是:

config/application.properties(项目根目录中config目录下)config/application.ymlapplication.properties(项目根目录下)application.ymlresources/config/application.properties(项目resources目录中config目录下)resources/config/application.ymlresources/application.properties(项目的resources目录下)resources/application.yml注:1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”4、先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载

若application.yml 和bootStrap.yml 在同⼀⽬录下,则bootStrap.yml 的加载顺序要⾼于application.yml,即bootStrap.yml 会优先被加载。
原理:
•bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等。
•application.yml 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等、可以⽤来定义应⽤级别的,如果搭配 spring-cloud-config 使⽤ application.yml ⾥⾯定义的⽂件可以实现动态替换。

例:
在这里插入图片描述
在这里插入图片描述

二、问题原因

使用SpringCloud的时候,配置信息一般是要从configServer加载的,为了取到配置信息,需要更早的取到配置,引导配置,因此把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。

三、Nacos配置中心读取不到配置

1、依赖版本
     org.springframework.cloud     spring-cloud-dependencies     2021.0.1     pom     import     com.alibaba.cloud     spring-cloud-starter-alibaba-nacos-config     2.2.5.RELEASE    com.alibaba.cloud    spring-cloud-starter-alibaba-nacos-discovery    2.2.5.RELEASE
2、application.yml
spring:  profiles:    active: @profileActive@
3、在application-dev.yml配置文件中配置config配置,引用不到Nacos配置中心的配置

代码如下:

server:  port: 8082  Tomcat:    accesslog:      encoding: UTF-8spring:  mvc:    pathmatch:      matching-strategy: ant_path_matcher  application:    name: pb-gateway  cloud:    nacos:      discovery:        enabled: true        server-addr: 192.168.85.128:8848        namespace: c30d277b-745f-4f4a-adda-22a0d1a8efee        group: dev      config:        server-addr: 192.168.85.128:8848        file-extension: yaml        namespace: c30d277b-745f-4f4a-adda-22a0d1a8efee        group: dev        refresh-enabled: true
4、启动成功后、无日志打印

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hPmT3iKm-1681352917379)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20230413094725235.png)]

解决方案:

将application-dev.yml中config配置移动到bootstrap.properties文件中

如下:

引入bootstrap的依赖
    org.springframework.cloud    spring-cloud-starter-bootstrap    3.1.3
application-dev.yml
server:  port: 8082  tomcat:    accesslog:      encoding: UTF-8spring:  mvc:    pathmatch:      matching-strategy: ant_path_matcher  cloud:    nacos:      discovery:        enabled: true        server-addr: 192.168.85.128:8848        namespace: c30d277b-745f-4f4a-adda-22a0d1a8efee        group: dev
bootstrap.properties
spring.application.name=pb-gatewayspring.cloud.nacos.config.server-addr=192.168.85.128:8848spring.cloud.nacos.config.file-extension=yamlspring.cloud.nacos.config.namespace=c30d277b-745f-4f4a-adda-22a0d1a8efeespring.cloud.nacos.config.group=devspring.cloud.nacos.config.refresh-enabled=true
启动成功会有一个日志打印

space=c30d277b-745f-4f4a-adda-22a0d1a8efee
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.refresh-enabled=true
``

启动成功会有一个日志打印

在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_44984676/article/details/130124388

--结束END--

本文标题: Nacos配置中心之引用不到配置文件问题

本文链接: https://www.lsjlt.com/news/409127.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作