1. 程式人生 > >幾個常見註解的理解

幾個常見註解的理解

[email protected]     @Resource 是JDK1.6支援的註解,預設按照名稱進行裝配,名稱可以通過name屬性進行指定,如果沒有指定name屬性,當註解寫在欄位上時,預設取欄位名,按照名稱查詢,如果註解寫在setter方法上預設取屬性名進行裝配。當找不到與名稱匹配的bean時才按照型別進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。

    @Resource(name="baseDao")         private BaseDao baseDao; 

[email protected]     @Autowired預設按型別裝配(這個註解是屬於spring的),預設情況下必須要求依賴物件必須存在,如果要允許null值,可以設定它的required屬性為false,如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結合@Qualifier註解進行使用,如下:

    @Autowired() @Qualifier("baseDao")         private BaseDao baseDao;

 雖然@Resource和@Autowired都可以來完成依賴注入,但它們之間是有區別的。

    [email protected]預設是按照名稱來裝配注入的,只有當找不到與名稱匹配的bean才會按照型別來裝配注入;     [email protected]預設是按照型別裝配注入的,如果想按照名稱來轉配注入,則需要結合@Qualifier一起使用;     [email protected]註解是由JDK提供,而@Autowired是由Spring提供       @Resource的方式;     d. @Resource和@Autowired都可以書寫標註在欄位或者該欄位的setter方法之上

[email protected]、@controller、@service、@repository

    這四個註解是用來定義bean的,將這其中之一放在一個類上面,就能完成bean的定義。@component是一個泛化的概念,僅僅表示一個bean的元件,可用在任何層次的;而@controller用在控制層的類上面、@service用在service層的類、@repository用在dao層的類上面。就是說@component是通用的,可用於任何層次的類;而@controller、@service、@repository各司其職。使用了這些註解之後,spring會自動建立相應的bean定義物件,並註冊到ApplicationContext中,這些類就成了spring要管理的元件

[email protected]("/dept")

    是一個用來處理請求地址對映的註解,可用於類或方法上。

[email protected]

    可以用來標記類,方法,屬性     如果上述三種元素不再使用,則使用@Deprecated註解     如果程式碼使用了有@Deprecated註解的類、方法或屬性,編譯器則會警告     如下,則為註解一個放棄使用的類     @Deprecated      public class MyComponent { }

[email protected]

    @Override註解,用來修飾對父類進行重寫的方法。如果一個並非重寫父類的方法使用這個註解,編譯器將提示錯誤。     實際上在子類中重寫父類或介面的方法,@Overide並不是必須的。但是還是建議使用這個註解,在某些情況下,假設你修改了父類的方法的名字,那麼之前重寫的子類方法將不再屬於重寫,如果沒有@Overide,你將不會察覺到這個子類的方法。有了這個註解修飾,編譯器則會提示你這些資訊。

[email protected]

    @SuppressWarnings用來抑制編譯器生成警告資訊。     可以修飾的元素為類,方法,方法引數,屬性,區域性變數     使用場景:當我們一個方法呼叫了棄用的方法或者進行不安全的型別轉換,編譯器會生成警告。我們可以為這個方法增加@SuppressWarnings註解,來抑制編譯器生成警告。 注意:使用@SuppressWarnings註解,採用就近原則,比如一個方法出現警告,我們儘量使用@SuppressWarnings註解這個方法,而不是註解方法所在的類。雖然兩個都能抑制編譯器生成警告,但是範圍越小越好,因為範圍大了,不利於我們發現該類下其他方法的警告資訊。