怎麼在spring中動態注入抽象類的實現類

2021-08-26 02:57:56 字數 2371 閱讀 9109

筆者在實際生產中有時會遇到需要自己生成 serviceimpl的 方法,和需要用到工廠類的情況,下面先講講怎麼用反射做工廠類,

動作被抽象出來

public

inte***ce paystrategy

public

class

ebankpay

implements

paystrategy

}

public

enum sectionenum

private string classname;

public string getclassname()

public

void

setclassname(string classname)

}

利用反射獲得父類

public

class strategyfactory

}

當然以上只是在工具類中適用,真正的 實際中可能會有 匯出報表時,實現類中有大量的 注入的service,所以工具類的這一套就需要稍微換一換

/**

* description: 工具類,用於普通類獲取註冊過的bean

* */

import org.slf4j.logger;

import org.slf4j.logge***ctory;

import org.springframework.beans.bean***ception;

import org.springframework.beans.factory.nosuchbeandefinitionexception;

import org.springframework.stereotype.component;

@component

public

class

springcontextutil

implements

private

final

static logger logger = logge***ctory

.getlogger(springcontextutil.class);

private

@override

public

void

throws bean***ception

public

}public

static object getbean(string name) throws bean***ception

public

static object getbean(string name, class requiredtype)

throws bean***ception

public

static object getbean(class requiredtype)

throws bean***ception

public

static

boolean

containsbean(string name)

public

static

boolean

issingleton(string name) throws nosuchbeandefinitionexception

public

static class gettype(string name) throws nosuchbeandefinitionexception

public

static string getaliases(string name) throws nosuchbeandefinitionexception

}

public inte***ce handle
可以使用拼接的名字 ,每乙個 匯出都會 代入自己的唯一的標識,所以可以 根據傳入的標識不一樣進行處理

@component

public

class

m107000015handle

implements

handle

}

string platcode=dbsource.getname();

handle

handle

= (handle) springcontextutil.getbean(platcode+

"handle");

handle

.handledata(data);

filter不能利用spring注入怎麼辦?

問題 寫了乙個filter,需要查詢資料庫,於是利用spring注入了service類,但是執行的時候發現,service一直是空,度娘之後發現由於種種原因,filter裡面沒有注入。解決辦法 private akskservice akskservice 這個就是需要注入的service publ...

Quartz 在 Spring 中如何動態配置時間

在專案中有乙個需求,需要靈活配置排程任務時間,並能自由啟動或停止排程。有關排程的實現我就第一就想到了quartz這個開源排程元件,因為很多專案使用過,spring結合quartz靜態配置排程任務時間,非常easy。比如 每天凌晨幾點定時執行乙個程式,這只要在工程中的spring配置檔案中配置好spr...

在靜態方法中應用spring注入的類

最近在一次專案的重構中,原專案需要在靜態方法中呼叫service,現在需要更換框架,service需要自動注入,無法再靜態方法中呼叫 解決思路 建立乙個當前類的靜態變數,建立乙個方法,使用 postconstruct 進行註解,被 postconstruct修飾的方法會在伺服器載入servle的時候...