SpringBoot使用@Value获取不到yaml中配置的值

这篇具有很好参考价值的文章主要介绍了SpringBoot使用@Value获取不到yaml中配置的值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在最近的开发中遇到一个问题,使用@Value获取yml文件中配置的属性时始终获取不到值,一开始我以为是没有注入的问题,或者没有写setter方法的问题,后来我发现这些都都写了然后开始百度发现获取不到属性值有这么几个原因

获取不到值的原因

1.没有使用Component注解,也就是没有注入到容器内

2.变量被static修饰

3.在构造器中使用了属性值

问题分析

前两点原因可以否定掉了,我在构造器中使用了这个变量导致的

原因:在这个问题中我忽略了spring Bean的生命周期

  1. 实例化Bean:在这个阶段,Spring容器创建Bean的实例,调用Bean的构造方法。

  2. 注入属性:Spring容器会尽力注入配置的属性值,包括使用@Value注解注入的值。

  3. 初始化Bean:在这个阶段,Spring容器执行一些初始化方法。通常,这包括调用InitializingBean接口的afterPropertiesSet方法、执行在Bean上使用@PostConstruct注解的方法或自定义的初始化方法。

springboot 获取不到yml值,spring boot,后端,java

springboot 获取不到yml值,spring boot,后端,java

 解决问题

知道了问题所在,但是还需要在bean加载的时候获取到属性值怎么办,可以使用InitializingBean来解决,InitializingBean接口是Spring Framework提供的一个用于初始化Bean的方式之一。它是org.springframework.beans.factory.InitializingBean接口的一部分。当一个Bean实现InitializingBean接口时,它必须提供一个afterPropertiesSet方法,该方法将在Bean的属性设置之后被自动调用。通常,你可以在这个方法中执行一些初始化逻辑,以确保Bean在被容器实例化后处于可用状态。

springboot 获取不到yml值,spring boot,后端,java

 文章来源地址https://www.toymoban.com/news/detail-810684.html

到了这里,关于SpringBoot使用@Value获取不到yaml中配置的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot使用配置文件配置我们自己配置类的值

    springboot实现一个配置类,该类的属性通过配置文件配置,而不是写死在代码里面。 新建我们需要的配置类,定义好属性名称,然后标记 @ConfigurationProperties(prefix = “sky.jwt”) 注解,里面的值是我们自己定义的前缀,在配置文件需要使用到,用来配置我们属性的值,最后我们在

    2024年01月21日
    浏览(42)
  • springboot在自定义拦截器中使用@Value获取值失败及@RefreshScope 不生效问题

    @RefreshScope注解用于标识在服务配置中心配置更新时,当前 Bean 需要重新注入以获取最新的配置值。但是在这段代码中,@RefreshScope注解标注在拦截器类上,并不会使拦截器实例重新注入。 通常情况下,拦截器是在应用程序启动时由 Spring Framework 实例化和初始化的,而不是在请

    2024年02月04日
    浏览(44)
  • 一、SpringBoot基础[Yaml配置文件]

    解释:application.yaml用来替代application.properties文件,如果文件中有较多的配置时,使用Yaml明显方便了许多 application.properties文件格式: Yaml文件格式: 注意:写的时候冒号后面必须加空格否则没有任何效果 1.对象 2.数组 解释:下面的 - 就表示一个列表内容,有的则是 [] 表示

    2024年02月15日
    浏览(46)
  • java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?

    当使用 Logback 日志框架和 RabbitMQ 的 @RabbitHandler 注解时,如果无法获取消费的 traceId 信息,可能是因为在处理 RabbitMQ 消息时,没有正确地将 traceId 传递到日志中。 为了将 traceId 传递到日志中,你可以利用 MDC(Mapped Diagnostic Context)机制。MDC 是一个线程绑定的上下文容器,允许

    2024年02月09日
    浏览(44)
  • 【Springboot】yaml配置文件&多环境切换

    关于配置文件的详细说明可以看官方文档: 24. Externalized Configuration 以下是个人学习过程中的笔记,如有错误,请多指教! 目录 (一)配置文件 (二)yaml的概述及基本使用         yaml基本语法 (三)注入配置文件的三种方式 (四)yaml配置文件位置 (五)多环境切换

    2024年02月06日
    浏览(40)
  • 【SpringBoot学习笔记】02. yaml配置注入

    说明:语法要求严格! 1、空格不能省略 2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。 3、属性和值的大小写都是十分敏感的。 1、在springboot项目中的resources目录下新建一个文件 application.yml 2、编写一个实体类 Dog; 3、思考,我们原来是如何给

    2024年02月14日
    浏览(29)
  • springboot篇---配置文件yaml篇2

    1.语法结构分类: application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value **配置文件的作用 :**修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了  2.yaml概述 YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。

    2024年02月04日
    浏览(41)
  • go-zero 如何在任意地方获取yaml中的值

    1、config配置文件中新增全局变量 2、main函数所在的入口文件为其赋值 3、然后在想要使用的地方直接使用就可以了。 比如使用yaml中配置的JWT认证的key

    2024年01月20日
    浏览(37)
  • Python Selenium 获取元素属性的值@value、@onclick

    获取元素文本值: ele = driver.find_element_by_id(‘id’) value = ele.text() 获取alert弹框的文本内容: alert = driver.switch_to.alert text = alert.text 常见元素值获取:value ele = driver.find_element_by_id(‘id’) value = ele.get_attribute(“value”) 获取不常用属性值:onclick ele = driver.find_element_by_id(‘id’) v

    2023年04月26日
    浏览(45)
  • 【SpringBoot】SpringBoot获取不到用户真实IP怎么办

    项目部署后发现服务端无法获取到客户端真实的IP地址,这是怎么回事呢?给我都整懵逼了,经过短暂的思考,我发现了问题的真凶,那就是我们使用了Nginx作的请求转发,这才导致了获取不到客户端真实的IP地址,害,看看我是怎么解决的吧! 客户端请求数据时走的是Nginx反

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包