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,侵删。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM