在我們的spring boot項(xiàng)目中,經(jīng)常會需要在代碼里面獲取配置文件里面的配置項(xiàng)。獲取配置項(xiàng)的其中一種方式就是使用@Value注解。前幾天在項(xiàng)目中遇到一個(gè)坑,就是取不到配置項(xiàng)的值,后面經(jīng)過一番折騰之后解決了,特此寫下一篇文章一來幫助他人,二來自己總結(jié)一下。
例如我們配置文件中這么寫:
user:
name: blablabl
那我們在代碼里面可以這樣取值:
@Value("${user.name}")
private String username;
有些朋友也像上面這樣寫了,但就是獲取不到配置項(xiàng)。
大家可以按照下面寫的原因逐一排查一下:
- 仔細(xì)檢查一下拼寫(如果是因?yàn)檫@個(gè)錯了折騰半天真是有點(diǎn)冤枉)
- 查看Value注解的包有沒有導(dǎo)入正確,正確的是
import org.springframework.beans.factory.annotation.Value; - 查看Value注解所在的類有沒有注入到spring的容器中(使用@Controller、@Service、@Component、@Configuration等等注解,或者使用spring的配置文件),@Value注解必須要在spring的bean中才能使用,不能自己new一個(gè)對象調(diào)用