Autowired註解和靜態方法

2021-08-17 14:58:43 字數 767 閱讀 6886

$

...

因為呼叫的工具類必須為靜態方法,而靜態方法裡需要查詢資料庫,這就涉及到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...