1. 程式人生 > >spring 注入變數不可以改成靜態變數

spring 注入變數不可以改成靜態變數

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  
		}
	}