$
...
因為呼叫的工具類必須為靜態方法,而靜態方法裡需要查詢資料庫,這就涉及到dao,在靜態方法裡呼叫dao的時候,要求這個dao必須為靜態變數,而簡單的新增static沒有報錯,在呼叫的時候則會報空指標異常,最開始的寫法如下:
錯誤寫法:
@component
public class datautils
}
原因:spring 依賴注入是依賴 set方法,set方法是普通的物件方法,而加上static的變數則是類的屬性,無法再按我們的意願注入。而卻靜態變數在類被建立之前就已經存在了。
有兩種方法:
方法一:將@autowire加到構造方法上
private static patviewdao pdao;
// 將@autowired加到構造方法上,將它賦給靜態變數
@autowired
public datautils(patviewdao pdao)
public static listpatientlistutil(string pat_id)
@component
public class test
public static listpatientlistutil(string pat_id)
}
個人更傾向於方法一,相比方法二省掉了乙個變數,**量少。 spring註解之 Autowired註解 二
我們繼續修改userservice把 autowired註解加在userservice對應的構造方法上如下 service public class userservice 增加乙個tostring方法 方便測試 override public string tostring 執行測試我們可以發現u...
Resource與 Autowired註解的區別
一 resource注入 現在有乙個介面human和兩個實現類manimpl womanimpl,在service層的乙個bean中要引用了介面human,這種情況處理如下 介面human public inte ce human public void walk 實現類womanimpl serv...
Spring 註解 Autowired原理
在啟動spring ioc時,容器會自動裝載autowiredannotationbeanpostprocessor後置處理器 public class autowiredannotationbeanpostprocessor extends instantiationawarebeanpostpr...