反射生成的類無法進行自動注入的解決方案

2021-10-01 07:18:29 字數 1361 閱讀 1491

核心思想是無法自動注入就自己手動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 暫...