QAQ记配置文件自定义属性取值失败的一件小事

177 阅读1分钟

今天开发的过程中遇到了一个小问题,前前后后经历了不少修改,包括清缓存,重新编译等奇葩操作,最后依然没有解决,在此记录一下,以免日后规避这种小问题。

一、问题描述

我在配置文件中,定义了一个自定义属性

然后直接在要使用的地方通过注解@Value(value="${config.name}")就可以绑定到你想要的属性上面

image.png

image.png 然而在调用的过程中,取出的常量始终为空值,尝试过许多无厘头的方法,依旧没有奏效

二、问题分析

取值为空有两种可能的情况:

1、该类未使用@Component注解,未将此类标记为Spring容器中的一个Bean,导致配置中的常量使用@Value取值失败;

2、常见类对象时使用new创建而非注入,未将对象放入IOC容器中,导致常量取值为空。

三、问题解决

通过加@Component,并在调用时注入使用,问题迎刃而解。

真是一个悲伤的故事。

image.png

image.png