springcloud项目里application.yml不加载的坑及解决

 更新时间:2024年07月13日 14:14:22   作者:inthirties  
这篇文章主要介绍了springcloud项目里application.yml不加载的坑及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

在springboot里经常使用application.properties类似的properties作为配置文件

通过配置文件进行springboot项目的配置

例如:

########################## application级别通用配置 ##########################
########################## Feign通用配置 ##########################
##### ribbon配置可以废除了 SpringBoot升级到2.6以后的 使用LoadBalance
## 从注册中心刷新servelist的时间 默认30秒,单位ms
ribbon.ServerListRefreshInterval=15000
## 请求连接的超时时间 默认1秒,单位ms
ribbon.ConnectTimeout=30000
## 请求处理的超时时间 默认1秒,单位ms
ribbon.ReadTimeout=30000
## 对所有操作请求都进行重试,不配置这个MaxAutoRetries不起作用 默认false
#ribbon.OkToRetryOnAllOperations=true
## 对当前实例的重试次数 默认0
ribbon.MaxAutoRetries=0
## 切换实例的重试次数 默认1
ribbon.MaxAutoRetriesNextServer=0

##### nacos(注册中心和配置中心)地址
spring.cloud.nacos.server-addr=${nacos.server-addr}
#spring.cloud.nacos.username=${nacos.username}
#spring.cloud.nacos.password=${nacos.password}

在springboot项目里,这是非常常见的

在springcloud的微服务项目

每个微服务也是使用spingboot作为基础脚手架来搭建项目的

有些项目使用了application.yml或者bootstrap.yml,发现配置项无效

这里的问题,是由于没有引入支持bootstrap.yml的包进来, 可以在项目里引入

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

引入以上的包即可后bootstrap.yml中的配置即可生效

在springboot的环境配置信息中,其配置信息的优先级如下

启动参数 > properties中的配置 > yml中的配置 > configuration Center的配置。

结束语

这个坑是不经意中遇到的,springcloud并不是一个完整的微服务的环境框架,而是一套技术框架加上一个搭建微服务的脚手架,

通过java的包依赖机制,加上使用maven和grandle构建工具而实现通过java完成微服务的实现,所以在很多的技术手段都是通过代码或者配置方式之一的耦合方式实现的。 这样势必会在业务代码中包含了不应该关心的东西,

这个坑如果在启动过程中使用yml的话,是不会踩到了, 当然如果是配置中心比如nacos里的yml格式文件,只要配置中心的配置被加载了,也不会受到影响, 否则,自己在项目里添加的application.yml和bootstrap.yml就是不能加载。

加上了spring-cloud-starter-bootstrap才行, java的模块化是实现上的模块化,springcloud架构下的云生态同样也是实技术化上的模块化,并不是体系上的模块化,这点也就是springcloud在未来的云生态下止步不前的原因。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JAVA中的基本数据类型

    JAVA中的基本数据类型

    本文主要介绍了JAVA中的基本数据类型。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Java 获取Html文本中的img标签下src中的内容方法

    Java 获取Html文本中的img标签下src中的内容方法

    今天小编就为大家分享一篇Java 获取Html文本中的img标签下src中的内容方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Spring cloud Feign 深度学习与应用详解

    Spring cloud Feign 深度学习与应用详解

    这篇文章主要介绍了Spring cloud Feign 深度学习与应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • base64_encode和base64_decode的JAVA实现

    base64_encode和base64_decode的JAVA实现

    Base64 编码其实是将3个8位字节转换为4个6位这4个六位字节 其实仍然是8位,只不过高两位被设置为0. 当一个字节只有6位有效时,它的取值空间为0 到 2的6次方减1 即63,也就是说被转换的Base64编码的每一个编码的取值空间为(0~63).需要的朋友可以参考下
    2016-04-04
  • java对接webservice接口的4种方式总结

    java对接webservice接口的4种方式总结

    因工作需要和一个Sap相关系统以WebService的方式进行接口联调,之前仅听过这种技术,但并没有实操过,所以将本次开发进行记录,这篇文章主要给大家介绍了关于java对接webservice接口的4种方式,需要的朋友可以参考下
    2023-10-10
  • MybatisPlus自定义Sql实现多表查询的示例

    MybatisPlus自定义Sql实现多表查询的示例

    这篇文章主要介绍了MybatisPlus自定义Sql实现多表查询的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java String 拼接字符串原理详解

    Java String 拼接字符串原理详解

    在本篇文章里小编给大家分享的是关于Java String 拼接字符串原理详解的相关资源内容,有需要的朋友们可以跟着学习参考下。
    2020-02-02
  • java集合遍历的几种方式总结及详细比较

    java集合遍历的几种方式总结及详细比较

    下面小编就为大家带来一篇java集合遍历的几种方式总结及详细比较。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • SpringBoot中发送QQ邮件功能的实现代码

    SpringBoot中发送QQ邮件功能的实现代码

    这篇文章主要介绍了SpringBoot中发送QQ邮件功能的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java实现全排列的三种算法详解

    Java实现全排列的三种算法详解

    从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。本文总结了Java实现全排列的三种算法,需要的可以参考下
    2022-06-06

最新评论