一、问题描述
今天启动 spring boot 项目的时候,有时候会报加载不到配置文件的属性。配置文件的属性是用 @Value 获取的,属性有时候会是 null 。
程序经过简化,是这样的,有一个 InitConfig 类,用来让静态工具类能获取到配置文件的属性值。内容是这样的:
在静态工具类中,通过 InitConfig.load(); 来获取配置文件中的属性值,这是没问题的,因为 @Configuration 类会在 spring 程序启动过程中就执行了。
但如果在 @Service 修饰的类中,调用 InitConfig.load(); 如下图所示:
这样,有时候就会获取不到配置文件中的属性值。如下图所示:
很奇怪,经过研究尝试,终于了解了其中的缘由。现在给大家分享一下。
二、spring bean 加载顺序
之前我一直以为 @Configuration 会比