1. 程式人生 > >Spring依賴注入相關筆記

Spring依賴注入相關筆記

1.概述:從Spring2.5開始就可以使用註解來配置依賴注入。而不是採用xml來描述一個bean連線,你可以使用相關類,方法或欄位宣告的註解,將bean配置移動到元件類本身。在XML注入之前進行註解注入,因此後者的配置將通過兩種方式的屬性連線別前者重寫。註解連線在預設的情況下在Spring容器中打不開。因此,在可以使用基於註解的連線之前,我們將需要在我們的Spring配置檔案中啟用它。

名稱

描述

@reuqired

@reuqired註解應用於bean屬性的setter方法

@Autowired

@Autowired註解可以應用到bean屬性的stter方法,非setter方法,建構函式和屬性

@Qualifier

通過制定確切的將被連線的bean,@Autowired和@Qualifier註解可以用來刪除混亂。

JSR-250 Annotation

Spring支援JSR-250的基礎的註解,其中包括了@resoure,@PostConstruct和predes

1.@Required註釋;

a)@Required註釋應用於bean的屬性的setter的方法,它表明受影響的bean屬性的配置時必須放在XML配置檔案中,否則容器就會丟擲一個beanlnitiakizationException異常

2.@Autowired註釋

a)@Autowired註釋可以在setter方法中被用於自動連線Bean,就像@Autowired註釋,容器,一個屬性或者任意命名的可能帶有多個引數的方法。當Spring遇到一個在stter方法中使用的@Autowired註釋,它會在方法中檢視執行byType自動連線

3.@Qualifier註釋

a)可以會有這樣一鍾情況,當你建立多個具有相同型別的bean時,並且想要一個屬性只為它們其中一個進行裝配,在這種情況下,使用@Qualifier註釋和@Autwired註釋來指定哪一個真正的bean將會被裝配來消除混亂

4.@Resouce註釋

a)在欄位中或者setter方法中使用@Resource註釋,@Resource註釋使用一個name屬性,該屬性以一個bean名稱的形式被注入

5.@Configuration和@Bean註釋:

a)帶有@Configuration的註釋表示這個類可以使用Spring loC容器作為bean定義的來源。

b)@bean註解告訴Spring,一個帶有@bean的註解方法將返回一個物件,該物件應該被註冊為在Spring引用程式上下文中的bean

Spring事件處理

1. 概述:

c)在我們之前的例子中,我們都是applicationContext,該容器負責管理bean中的生命週期,其實,當容器載入管理器的bean時會伴隨著一系列的事件發生和處理,例如啟動停止監聽等

2.專業詞彙:

a)ContextStartedEvent容器啟動

b)contextStoppedEvent容器停止

c)applicationEvent容器事件

d)ApplicationListener容器事件監視。

3. Spring內建標準事件

名字

內容

ContextRefreshedEvent

ApplicationContext被初始化或重新整理時,該事件被髮布。這也可以在ConfigurableApplicationContext介面中使用refresh()方法來發生

ContextStartedEvent

當使用ConfigurableApplicationContext介面中的start()方法啟動ApplicationContext時,該事件被髮布。你可以調查你的資料庫,或者你可以在接受這個事件後重啟任何停止的應用程式

ContextStoppedEvent

當使用ConfigurableApplicationContext介面中的stop()方法停止ApplicationContext時,該事件被髮布,你可以在接受這個事件後做必要的清理工作

ContextClosedEvent

當使用ConfigurableApplicationContext介面中的close()方法關閉ApplicationContext時,該事件被髮布,一個已關閉的上下文達到生命週期末端:它不能被重新整理或重啟

RequstHandledEvent

這是一個web-specific事件,告訴所有 bean HTTP請求已經被服務

4. 特別注意:

Spring的事件處理是單執行緒的,所以如果一個事件被髮布直至並且除非所有的接受者得到的該訊息,該程序被堵塞並且流程將不會繼續