在專案中,我遇見了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 類被註解標記。在專案中,會遇...