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中的继承,需要的可以了解一下
    2022-10-10
  • Mybatis设置sql打印日志的多种方法

    Mybatis设置sql打印日志的多种方法

    这篇文章主要介绍了Mybatis设置sql打印日志,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • springMVC盗链接详解

    springMVC盗链接详解

    这篇文章主要为大家详细介绍了SpringMVC盗链接详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-07-07
  • spring-boot-maven-plugin 插件的作用详解

    spring-boot-maven-plugin 插件的作用详解

    添加了spring-boot-maven-plugin插件后,当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包,使用"java -jar"可以直接运行。这篇文章主要给大家介绍spring-boot-maven-plugin 插件的作用,感兴趣的朋友一起看看吧
    2018-10-10
  • 5种必会的Java异步调用转同步的方法你会几种

    5种必会的Java异步调用转同步的方法你会几种

    这篇文章主要介绍了5种必会的Java异步调用转同步的方法你会几种,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 每天练一练Java函数与算法Math函数总结与字符串转换整数

    每天练一练Java函数与算法Math函数总结与字符串转换整数

    这篇文章主要介绍了Java函数与算法Math函数总结与字符串转换整数,每天练一练,水平在不知不觉中提高,需要的朋友快过来看看吧
    2021-08-08
  • SpringMVC @ControllerAdvice使用场景

    SpringMVC @ControllerAdvice使用场景

    这篇文章主要介绍了SpringMVC @ControllerAdvice使用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 详解SpringMVC的拦截器链实现及拦截器链配置

    详解SpringMVC的拦截器链实现及拦截器链配置

    拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。本文将详细讲讲SpringMVC中拦截器参数及拦截器链配置,感兴趣的可以尝试一下
    2022-08-08
  • RestTemplate自定义ErrorHandler方式

    RestTemplate自定义ErrorHandler方式

    这篇文章主要介绍了RestTemplate自定义ErrorHandler方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java窗体动态加载磁盘文件的实现方法

    Java窗体动态加载磁盘文件的实现方法

    这篇文章主要介绍了Java窗体动态加载磁盘文件的实现方法,需要的朋友可以参考下
    2014-03-03

最新评论