spring常用註解詳情

2021-07-25 11:34:03 字數 1561 閱讀 3501

用註解來向spring容器註冊bean。  

1:@repository標註在持久層,即dao,用於標註資料訪問。  

2:@service標註在業務層,即service,用於標註業務邏輯。  

3:@controller標註在控制層。  

4:@component當不明確這個類屬於那個層的時候,可以使用@component進行標註,但不建議使用  

5:@autowired屬性加上@autowired後不需要getter()和setter()方法,spring會自動注入。  

@autowired(required=false)表示,如果spring上下文中沒有找到該型別的bean時,才會使用newserviceimpl();   

6:@qualifier當介面存在兩個實現類的時候必須使用@qualifier指定注入哪個實現類,否則可以省略,只寫@autowired。  

例如:定義乙個交通工具類:vehicle。此時有兩個子類bus和sedan。如果用@autowired來找vehicle的話,會有兩個匹配的選項bus和sedan。為了限定選項,可以如下  

7:形似@service("***"):相當於講這個類定義為乙個bean,bean名稱為***,預設為首字母小寫  

比如在乙個student實現類上加上@service("student"),括號裡面就是給例項化後的student物件取個名字。這是在你乙個介面有多個實現類的情況下區分實現類的方式。  

比如student實現了person介面,在你的controller裡面@autowiredperson時,假如這時person還有另乙個實現類user,為了確定例項化student還是user, @service括號裡面的東西就有用了,  

8:@resource  

@resource的作用相當於@autowired,只不過@autowired按bytype自動注入,而@resource預設按 byname自動注入罷了。@resource有兩個屬性是比較重要的,分是name和type,spring將@resource註解的name屬性解析為bean的名字,而type屬性則解析為bean的型別。所以如果使用name屬性,則使用byname的自動注入策略,而使用type屬性時則使用bytype自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byname自動注入策略。  

@resource裝配順序  

1).如果同時指定了name和type,則從spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常  

2) 如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常  

3) 如果指定了type,則從上下文中找到型別匹配的唯一bean進行裝配,找不到或者找到多個,都會丟擲異常  

4) 如果既沒有指定name,又沒有指定type,則自動按照byname方式進行裝配;如果沒有匹配,則回退為乙個原始型別進行匹配,如果匹配則自動裝配;  

9:@postconstruct,@predestroy  

這兩個注釋只能應用於方法上,標註了@postconstruct注釋的方法將在類例項化後呼叫,而標註了 @predestroy的方法將在類銷毀之前呼叫。

Spring的定時註解配置詳情

經常用,總也記不住,備份一下,便於使用 註解 scheduled cron crontrigger配置完整格式為 秒 分 小時 日 月 周 年 萬用字元說明 表示所有值.例如 在分的字段上設定 表示每一分鐘都會觸發。表示不指定值。使用的場景為不需要關心當前設定這個欄位的值。例如 要在每月的10號觸發...

spring 相關註解詳情(一)

1 controller 控制器 注入服務 用於標註控制層,相當於struts中的action層 2 service 服務 注入dao 用於標註服務層,主要用來進行業務的邏輯處理 3 repository 實現dao訪問 用於標註資料訪問層,也可以說用於標註資料訪問元件,即dao元件.4 compo...

Spring常用註解

spring常用註解 1 引入context命名空間 在spring的配置檔案中 配置檔案如下 xml xmlns context spring context 2.5.xsd 開啟配置 spring 會自動掃瞄cn.pic包下面有註解的類,完成bean的裝配。xml xmlversion 1.0 ...