spring 注入變數不可以改成靜態變數
阿新 • • 發佈:2018-11-12
Spring中,變數注入到靜態方法中,變數會被改為靜態的,雖然不報錯,但執行時會報空指標錯誤。
Spring不能注入static變數的原因,具體詳情如下所示:
Spring 依賴注入 是依賴 set方法
set方法是 是普通的物件方法
static變數是類的屬性
@Value("#{configProperties['guojianurl']}")
private String guojianurl;
//注入到靜態方法中,變為
@Value("#{configProperties['guojianurl']}")
private static String guojianurl;
Spring支援set方法注入,我們可以利用非靜態setter 方法注入靜態變數
自動生成的getter和setter方法,會帶有static的限定符,需要去掉,才可以。
@Component/** 不能少 */ public class lei { private static String GuoJianurl; @Value("#{configProperties['guojianurl']}") public void setGuoJianurl(String guojianurl) { GuoJianurl = guojianurl; } public static String staticmethod() { //GuoJianurl } }