spring @Value 属性值的注入

今天在做项目的时候,发现明明给一个字段标注了@Value 并成功读取到了 application.properties 中属性值

但是在调用构造函数的时候 缺报了空指针异常,构造函数中需要的一个值没有传入。

后来经过查找资料,发现 spring的属性注入有两种方法:

1. 属性注入:通过无参构造函数+setter方法注入

2. 构造注入:通过有参的构造函数注入。

 

属性注入是 spring调用了类的无参构造函数创建一个对象,然后利用setter方法赋值。

这种情况下,构造函数先于属性注入,如果在构造函数中对属性的值进行了判断,就会报空指针异常!

构造注入是通过有参的构造函数注入,如果需要在构造对象的时候便对成员赋值,推荐采用此种方法。

构造函数的参数上使用@Value进行注入

public XXXDao(@Value("${mongodb.host}") String mongoHost{

  xxxxxxxxxxx;

}

资料来源自https://blog.csdn.net/achang07/article/details/79419006?utm_source=blogxgwz7,侵删。

posted on 2020-07-10 10:05  豆子和豆芽菜  阅读(1357)  评论(0)    收藏  举报