在我们的spring boot项目中,经常会需要在代码里面获取配置文件里面的配置项。获取配置项的其中一种方式就是使用@Value注解。前几天在项目中遇到一个坑,就是取不到配置项的值,后面经过一番折腾之后解决了,特此写下一篇文章一来帮助他人,二来自己总结一下。
例如我们配置文件中这么写:
user:
name: blablabl
那我们在代码里面可以这样取值:
@Value("${user.name}")
private String username;
有些朋友也像上面这样写了,但就是获取不到配置项。
大家可以按照下面写的原因逐一排查一下:
- 仔细检查一下拼写(如果是因为这个错了折腾半天真是有点冤枉)
- 查看Value注解的包有没有导入正确,正确的是
import org.springframework.beans.factory.annotation.Value;
- 查看Value注解所在的类有没有注入到spring的容器中(使用@Controller、@Service、@Component、@Configuration等等注解,或者使用spring的配置文件),@Value注解必须要在spring的bean中才能使用,不能自己new一个对象调用
网友评论