在使用@value註解之後,字段總是為空。後來發現是因為字段使用了static修飾。
@component
public class testvalue
}
spring的依賴注入不支援為static變數注入。spring 依賴注入的底層原理還是利用反射來建立物件。而static變數,在jvm載入類的時候便已經建立,存在於方法區,被所有例項共享,屬於類的屬性而不是物件的屬性。spring是基於物件層面的依賴注入。
解決1.使用set方法注入,非靜態setter 方法注入靜態變數。如:
import org.springframework.beans.factory.annotation.value;
import org.springframework.stereotype.component;
@component
public class globalvalue ")
public void setdatabase(string db)
}
2.@postconstruct方式實現
import org.mongodb.morphia.advanceddatastore;
import org.springframework.beans.factory.annotation.autowired;
@component
public class mongofileoperationutil
}
@postconstruct,會在構造方法之後執行。其給static變數賦值的原理和set方法差不多,都是呼叫非靜態方法給靜態變數賦值 spring註解之 value註解
首先在xml中定義乙個bean如下 把對應的引數以property中value的形式注入 測試 如下 根據bean id獲取bean物件 system.out.println bean 執行結果如下 可以發現已經獲取到xml中配置的屬性了 user username zhangsan,age 26 ...
spring註解 value使用
public class bike public void setname string name value private string name public string getname configuration propertysource classpath test.properti...
Value註解分類解析
value的作用是通過註解將常量 配置檔案中的值 其他bean的屬性值注入到變數中,作為變數的初始值。1 常量注入 value normal private string normal 注入普通字串 private resource resourcefile 注入檔案資源 value private...