spring中bean的獲取方式總結

2021-07-04 14:12:15 字數 1016 閱讀 3907

在專案中,我遇見了dubbo介面獲取不到bean的情況。

我需要寫乙個執行緒,獲取redis資料,然後用過dubbo介面將資料傳給另乙個平台。

我的做法是將redis配置成了乙個佇列,從redis獲取或來的資料存放在佇列裡面。在專案啟動的時候初始化redis佇列。

獲取redis的資料,存放在佇列裡,然後呼叫dubbo介面。

最後用beanfactory終於獲取到了這個bean。

下面,總結一下我用過的幾種方式:

//方法1:jdk 獲取的時候報空指標

@resource

private iaccountmanager accountmanagerservice;

//方法2:spring

@autowired

private iaccountmanager accountmanagerservice;

//方法4

iaccountmanager accountmanagerservice=(iaccountmanager) context.getbean("accountmanagerservice");

//方法5

iaccountmanager accountmanagerservice = (iaccountmanager)factory.getbean("accountmanagerservice");

比較一下幾種方式:

@resource和@autowired的比較

1、@resource是jdk提供的,@autowired是spring提供的

2、@resource預設是按照名稱來裝配注入的,只有當找不到與名稱匹配的bean才會按照型別來裝配注入;@autowired預設是按照型別裝配注入的,如果想按照名稱來轉配注入,則需要結合@qualifier一起使用

1、對國際化支援

2、事件機制(event) 

3、.底層資源的訪問

4、對web應用的支援 

5、載入形式

6、其他區別

quartz 獲取spring中的bean

在quartz中的定時任務裡,如果需要獲取spring中已經定義了的bean,必須是已經序列化了,但這種情況很少出現,大部分的service中都沒有序列化,所以都不能作為乙個引數送到定時任務的方法中,需要通過quartz中的已經實現序列化介面的schedulercontext類物件進行獲取 這樣就可...

帶你了解Spring中bean的獲取

目錄 1.通過context.getbean 的方式來獲取bean application程式設計客棧context 是spring繼beanfactory程式設計客棧之外的另乙個核心介面或容器,允許容器通過應用程式設計客棧程式上下文環境建立 獲取 管理bean。也就是spring中的所有的bean...

Spring 實踐 獲取bean

spring在初始化時容器會根據配置檔案初始化所有配置的bean。在使用時有兩種常用方法可以在 中獲取例項。系統會自己根據名稱 型別去容器裡查詢對應的類並且注入,前提適用的場景必須是被spring所掃瞄到的類,且被注入到容器裡。換句話說就是 1 被spring掃瞄到。2 類被註解標記。在專案中,會遇...