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