解决SpringBoot使用@Value获取不到yaml中配置值的问题
在最近的开发中遇到一个问题,使用@Value获取yml文件中配置的属性时始终获取不到值,一开始我以为是没有注入的问题,或者没有写setter方法的问题,后来我发现这些都都写了然后开始百度发现获取不到属性值有这么几个原因
获取不到值的原因
1.没有使用Component注解,也就是没有注入到容器内
2.变量被static修饰
3.在构造器中使用了属性值
问题分析
前两点原因可以否定掉了,我在构造器中使用了这个变量导致的
原因:在这个问题中我忽略了spring Bean的生命周期
实例化Bean:在这个阶段,Spring容器创建Bean的实例,调用Bean的构造方法。
注入属性:Spring容器会尽力注入配置的属性值,包括使用
@Value注解注入的值。初始化Bean:在这个阶段,Spring容器执行一些初始化方法。通常,这包括调用
InitializingBean接口的afterPropertiesSet方法、执行在Bean上使用@PostConstruct注解的方法或自定义的初始化方法。


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

以上就是SpringBoot使用@Value获取不到yaml中值的问题解决的详细内容,更多关于SpringBoot @Value获取不到yaml的资料请关注脚本之家其它相关文章!
相关文章
springboot-mongodb的多数据源配置的方法步骤
这篇文章主要介绍了springboot-mongodb的多数据源配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04
Java通过cellstyle属性设置Excel单元格常用样式的全面总结讲解
在处理Excel文件时,经常需要对单元格进行样式设置,以满足特定的需求和美化要求,这篇文章主要给大家介绍了关于Java通过cellstyle属性设置Excel单元格常用样式的相关资料,需要的朋友可以参考下2024-01-01


最新评论