核心思想是無法自動注入就自己手動new
和單例模式寫法一致
建立乙個私有的屬性
private waybillutils waybillutils;
提供乙個
@override
public r check
(list
waybillvo)
check()
這樣就能用new出來的類了
用過載的方式寫方便**重用
但是這樣就存在乙個問題
手動new出來的類依然是脫離spring的
這裡new出來的類依然是不能自動注入裡面的***service或***dao
那麼正確的思路是什麼呢?
**比如這裡我想用waybillutils,但是waybillutils是null,
就可以使用下面的**()
;this
getbean
("waybillutilsimpl"
, waybillutilsimpl.
class);
需要注意的是spring自動建立的類名首字母是小寫
另外想使用上面的這個方法,需要把下面這個類在自己專案中建立,並且要能被spring掃瞄到.(@component註解),否則也是無效的
/**
* */
@component
public
class
springcontextholder
implements
, disposablebean
/** */
@suppresswarnings
("unchecked"
)public
static
t getbean
(string name)
/** */
public
static
t getbean
(class
requiredtype)
/** */
public
static
void
clearholder()
/** */
@override
public
void
//nosonar
}/**
* 實現disposablebean介面, 在context關閉時清理靜態變數.
*/@override
public
void
destroy()
throws exception
}
反射生成的類無法進行自動注入的解決方案
之前我有乙個設計,需要設定乙個靈活的過濾規則,但考慮到各部門之間的過濾規則過於繁複,依靠個人能力完全無法在短時間內完成,因此我寫了乙個介面,讓使用者通過實現介面來實現他們自己的過濾規則。設計就是讓使用者通過實現該介面,並在我的配置檔案裡寫他們的類路徑,我通過反射生成這個類,並載入進我的方法。然後,問...
PHP基於反射機制實現自動依賴注入的方法詳解
依賴注入又叫控制反轉,使用過框架的人應該都不陌生。很多人一看名字就覺得是非常高大上的東西,就對它望而卻步,今天抽空研究了下,解開他它的神秘面紗。廢話不多說,直接上 工具類,使用該類來實現自動依賴注入。class ioc 執行類的方法 param type classname 類名 param typ...
java 反射機制(Field)對類的字段進行操作
設定變數setfield field userinfo.getclass getdeclaredfield name 私有變數set需呼叫此方法 field.setaccessible true 字元型別名稱 string fieldtypename field.gettype get name 暫...