spring各種註解
1.@autowired註解(不推薦使用,建議使用@resource)
@autowired可以對成員變數、方法和建構函式進行標註,來完成自動裝配的工作。@autowired的標註位置不同,它們都會在spring在初始化這個bean時,自動裝配這個屬性。
2. @qualifier註解
@autowired是根據型別進行自動裝配的。例如,如果當spring上下文中存在不止乙個userdao型別的bean時,就會丟擲beancreationexception異常;如果spring上下文中不存在userdao型別的bean,也會丟擲beancreationexception異常。我們可以使用@qualifier配合@autowired來解決這些問題。
3. @resource註解
jsr-250標準註解,推薦使用它來代替spring專有的@autowired註解。@resource的作用相當於@autowired,只不過@autowired按bytype自動注入,而@resource預設按byname自動注入罷了。@resource有兩個屬性是比較重要的,分別是name和type,spring將 @resource註解的name屬性解析為bean的名字,而type屬性則解析為bean的型別。所以如果使用name屬性,則使用byname的自動注入策略,而使用type屬性時則使用bytype自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byname自動注入策略。
@resource裝配順序:
a.如果同時指定了name和type,則從spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常
b.如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常
c.如果指定了type,則從上下文中找到型別匹配的唯一bean進行裝配,找不到或者找到多個,都會丟擲異常
d.如果既沒有指定name,又沒有指定type,則自動按照byname方式進行裝配(見2);如果沒有匹配,則回退為乙個原始型別(userdao)進行匹配,如果匹配則自動裝配;
4. @postconstruct(jsr-250)註解
在方法上加上註解@postconstruct,這個方法就會在bean初始化之後被spring容器執行(注:bean初始化包括,例項化bean,並裝配bean的屬性(依賴注入))。它的乙個典型的應用場景是,當你需要往bean裡注入乙個其父類中定義的屬性,而你又無法複寫父類的屬性或屬性的setter方法時
5. @predestroy(jsr-250)註解
在方法上加上註解@predestroy,這個方法就會在bean初始化之後被spring容器執行。其用法同@postconstruct。和@postconstruct 區別在於:@postconstruct注釋的方法將在類例項化後呼叫,而標註了 @predestroy 的方法將在類銷毀之前呼叫。
6. @component註解 (不推薦使用)
只需要在對應的類上加上乙個@component註解,就將該類定義為乙個bean了。spring還提供了更加細化的註解形式:@repository、@service、@controller,它們分別對應儲存層bean,業務層bean,和展示層bean。目前版本(2.5)中,這些註解與@component的語義是一樣的,完全通用,在spring以後的版本中可能會給它們追加更多的語義。所以,我們推薦使用@repository、@service、@controller來替代@component。
7.@scope註解
在使用xml定義bean時,我們可能還需要通過bean的scope屬性來定義乙個bean的作用範圍
JavaEE開發學習筆記 3
11.同一使用者共享不同頁面的資料 1 cookie技術 伺服器儲存客戶端的資訊,例如儲存使用者名稱,密碼。伺服器獲得這些資訊後,需要回寫到客戶端的某個目錄。這樣伺服器在使用的時候可以從客戶端讀取cookie中的資訊。實現功能 儲存使用者名稱密碼,在一定時間內不需要登入 記錄使用者訪問 的喜好 的個...
Java EE學習筆記之 繼承
子類不能同時繼承多個父類,但是子類可以多層繼承父類 舉個例子 class zu class fuextends zu class ziextends fu父類可以被多個子類繼承。子類有父類的的全部屬性和方法。public class demo02 class zu class fuextends z...
Stoker的JavaEE學習(二)
一.servletconfig servlet配置資訊 servletconfig中的幾種方法 二.域物件中的servletcontext 域物件 在一定範圍內有效的物件 注意 所有的域物件都有共同的特點 內部維護了乙個map集合 所有域物件共有的方法 1.setattribute 2.getatt...