Java基礎-註解

      現在的開發都推崇使用註解來進行開發,這樣就可以免去XML配置了,學習註解之後就可以更好地理解註解是怎麼工作的了。

     什麼是註解:

      註解其實就是代碼中的特殊標記,這些標記可以在編譯、類加載、運行時被讀取,並執行相對應的處理。

  註解其實就是兩個作用:

   讓編譯器檢查代碼

   將數據注入到方法、成員變量、類上


     爲什麼要用註解:

     傳統的方式,我們是通過配置文件(xml文件)來告訴類是如何運行的。但是有了註解技術之後,我們就可以通過註解來告訴類如何運行。

     例如:

     1、我們以前編寫Servlet的時候,需要在web.xml文件配置具體的信息

   

使用了註解之後,可以直接在Servlet源代碼上,增加註解,Servlet就被配置到Tomcat上了。也就是說註解可以給給、方法注入信息。


2、比如我們在編寫service層時,需要導入Dao層,還需要編寫setter、getter方法。


但是使用了註解之後,我們不需要再寫setter、getter方法了。spring可以自動幫你把bean裏面引用的對象的setter/getter方法省略,它會自動幫你set/get


基本註解:

1、重寫註解:@Override

如果我們重寫父類的方法,就可以看見它了。

 @Override是告訴編譯器要檢查該方法是實現父類的方法,可以幫我們避免一些錯誤。

比如,我們在實現父類的printWin方法時,把printWin()寫錯成pntWin()時,那麼編譯器就會發現該方法並不會實現父類的方法,與註解衝突,於是就會顯示錯誤提示我們。


2、抑制編譯器警告註解:@SuppressWarnings

我們可以用它來讓編譯器不給予我們警告。

比如當我們在使用集合時,如果沒有指定泛型,那麼會提示安全檢查警告


當我們在加上註解之後,那麼編譯器就不會給我們警告了。


自定義註解基礎:

1、標記註解:沒有任何成員變量的註解,@Overried就是一個標記註解


2、元數據註解:定義帶成員變量的註解。


使用註解:

1、下面有一個add的方法,需要username和age參數,我們通過註解來讓該方法擁有這兩個變量;


2、我們也可以在聲明屬性時,給出默認值。


在修飾的時候就不用給出具體值了


3、還有一種特殊的情況,如果註解上只有一個屬性,並且屬性的名稱爲value,那麼在使用的時候,我們可以不寫value,直接賦值給它就行


使用時:


爲什麼使用註解就可以把變量注入到方法上,是怎麼注入的:利用的是反射技術。

步驟:

反射出該類的方法

通過方法得到註解上具體的信息

將註解上的信息注入到方法上


這時要在自定義註解類中加@Retention(RetentionPolicy.RUNTIME),要不就會出現異常


注入對象到方法上:

  • Person類,定義username和age屬性,擁有uername和age的getter和setter方法

  • PersonDao類,PersonDao類定義了Person對象,擁有person的setter和getter方法

  • 現在我要做的就是:使用註解將Person對象注入到setPerson()方法中,從而設置了PersonDao類的person屬性


步驟:

①: 自定義一個註解,屬性是和JavaBean類一致的


②:編寫注入工具


③:總結一下步驟

其實我們是這樣把對象注入到方法中的:

  • 得到想要類中注入的屬性

  • 得到該屬性的對象

  • 得到屬性對應的寫方法

  • 通過寫方法得到註解

  • 獲取註解詳細的信息

  • 將註解的信息注入到對象上

  • 調用屬性寫方法,將已填充數據的對象注入到方法中

把對象注入到成員變量上:

步驟:

1、在成員變量上使用註解


2、編寫注入工具