spring專案中靜態方法中使用注入的bean

2021-08-14 03:54:16 字數 1428 閱讀 1742

1. 說明:

專案中涉及到dubbo服務,在專案中需要將這個服務作為乙個bean注入,由於本人需要在靜態方法中使用這個bean,所以如果使用類似@autowire等註解注入時會編譯報錯。

2. 解決方法:

自己寫乙個工具類,通過spring上下文獲取這個bean。轉成靜態的。

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

import org.springframework.stereotype.component;

/** * *springcontexthelper*

* description:

* * @author ***

* @date 2017/12/28 10:34

*//*

* @component泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。

* 標記為元件後在啟動服務時,會將此類例項化到spring容器中,相當於配置檔案中的*/

@component

/*** spring應用上下文環境

*//**

* 重寫並初始化上下文

* @throws bean***ception bean異常

*/@override

}/**

* 通過類獲取

* @param clazz 注入的類

* @param 返回型別

* @return 返回這個bean

* @throws bean***ception bean異常

*/@suppresswarnings("unchecked")

public static t getbean(class clazz) throws bean***ception

/*** 通過名字獲取

* @param name 名字

* @param 返回型別

* @return 返回這個bean

* @throws bean***ception bean異常

*/@suppresswarnings("unchecked")

public static t getbean(string name) throws bean***ception

}

在需要使用的類中注入你的bean使用即可

private static employeeservice employeeservice = springcontexthelper.getbean(employeeservice.class);

網上還有類似的解決辦法,例如使用@postconstruct等,或是直接先例項化這個類,再呼叫,如new testclass().employeeservice(在這裡肯定不適用),我都嘗試了下,沒有成功。

專案中使用ibatis方法

通過daomanagerbuilder載入dao.xml檔案獲取daomanager物件 dao.xml 配置如下 sql map config 配置如下 匯入database.properties檔案 設定資料庫連線屬性 匯入每乙個資料庫實體檔案 檔案指定實體類和資料表對應關係 account.x...

專案中使用spring和redis的整合

在專案中我使用的是spring內部整合的redis。不得不服,spring幾乎整合了當下所有流行的框架。從這上面看,當下流行的redis solr hadoop mongodb couchbase.全都收入囊中。對於redis整合而言,主要用到的是spring data redis 使用步驟 新增p...

spring 專案中在類中注入靜態字段

有時spring 專案中需要將配置檔案的屬性注入到類的靜態欄位中 例如 檔案上傳 檔案上傳指定上傳位置 有如下引數 如果想在類中直接使用,可以通過定義常量類的靜態欄位來獲取 component propertysource classpath dev resource dev.properties ...