@component:通用註解,用於任何bean
@repository:用於註解dao層(持久層)
@service:用於註解service類(服務層)
@controller:註解controller類(控制層)
@scope(」prototype」)預設:singleton,用於類
singleton作用域:spring ioc容器中只會存在乙個共享的bean例項,並且所有對bean的請求,只要id與該bean定義相匹配,則只會返回該bean的同一例項。singleton作用域是spring中的預設作用域。
prototype作用域:prototype作用域的bean會導致在每次對該bean進行請求(將其注入到另乙個bean中,或者以程式的方式呼叫容器的getbean()方法時都會建立乙個新的bean例項。對於具有prototype作用域的bean,有一點很重要,即spring不能對該bean的整個生命週期負責。具有prototype作用域的bean建立後交由呼叫者負責銷毀物件**資源。
總結一下就是:
singleton 只有乙個例項,也即是單例模式。
prototype訪問一次建立乙個例項,相當於new。
應用場合:
1.需要**重要資源(資料庫連線等)的事宜配置為singleton,如果配置為prototype需要應用確保資源正常**。
2.對有狀態的bean應使用prototype作用域,而對無狀態的bean則應該使用singleton作用域。
(ps:無狀態的bean:提供工具類的函式物件,僅僅提供呼叫服務;
有狀態的bean:維持了乙個會話的狀態,每一次呼叫都會改變會話的狀態。)
@required:適用於bean屬性的setter方法
這個註解僅僅表示,受影響的bean屬性必須在配置時被填充,通過在bean定義或通過自動裝配乙個明確的屬性值
@inject等效於@autowired,可以使用於類,屬性,方法,構造器
@qualifier:按型別(type)自動裝配可能多個bean例項的情況,可以使用spring的@qualifier註解縮小範圍(或指定唯一),也可以用於指定單獨的構造器引數或方法的引數(多個),可用於註解集合型別變數, 如:@qualifier(「beanimplone」)
@resource:通過名字進行註解注入,可用於集合或者map型別的bean(@autowired並不適用),
適用於成員變數,只有乙個引數的setter方法,所以在目標是構造器或乙個多引數方法時,最好的方式是使用@qualifier註解;
@resource有乙個name屬性,如 : @resource(name = 「mybean」),如果沒有顯式地指定@resource的name,預設的名稱是從屬性名或者setter方法得出
@named:使用特定名稱進行依賴注入,使用@named。@named與@component是等效的,和@qualifier相似
Spring常用註解
spring常用註解 1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlversion 1.0 ...
Spring常用註解
在spring中常用的註解 autowired註解 不推薦使用,建議使用 resource autowired可以對成員變數 方法和建構函式進行標註,來完成自動裝配的工作。autowired的標註位置不同,它們都會在spring在初始化這個bean時,自動裝配這個屬性。要使 autowired能夠工...
spring常用註解
1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml 收藏 xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlns xmlns xsi xmlns c...