1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
當(dāng) spring 調(diào)用此構(gòu)造函數(shù)時(shí), url 屬性為 null !如果必須在實(shí)例化 bean 之前讀取 @Value 屬性,則必須設(shè)置 url 并且與 null 不同。不是嗎?
這不是它的工作原理,如果ReadValueFromFile
require的構(gòu)造函數(shù)@Value
那么只有 Spring 將保證在實(shí)例化ReadValueFromFile
值url
之前可用,否則 SpringReadValueFromFile
使用默認(rèn)構(gòu)造函數(shù)進(jìn)行實(shí)例化,然后通過調(diào)用屬性的setter
方法,url
它將注入值。
因此,在構(gòu)造函數(shù)運(yùn)行期間,您將看不到該值。
您的代碼沒有任何問題。
您需要了解 Spring 如何注入依賴項(xiàng)(或值):
Constructor
注入 - 表示依賴項(xiàng)/值必須在注入的依賴實(shí)例化期間存在Setter
注入 - 表示依賴實(shí)例化期間不需要依賴項(xiàng)/值,但稍后將使用 setter 方法注入Field
注入 - 表示依賴實(shí)例化期間不需要依賴項(xiàng)/值,但稍后將使用反射注入
添加回答
舉報(bào)