java 註解的實現機制

來源:互聯網
上載者:User

標籤:override   pat   架構   spring註解   repos   預設值   table   註解   說明   

一.什麼是註解:

     註解是標記,也可以理解成是一種應用在類、方法、參數、屬性、構造器上的特殊修飾符。註解作用有以下三種:

       第一種:產生文檔,常用的有@[email protected]等。

       第二種:替代設定檔的作用,尤其是在spring等一些架構中,使用註解可以大量的減少設定檔的數量。

       第三種:檢查代碼的格式,如@Override,標識某一個方法是否覆蓋了它的父類的方法。

二.註解的底層實現原理:

       註解的底層也是使用反射實現的,我們可以自訂一個註解來體會下。註解和介面有點類似,不過申明註解類需要加上@interface,註解類裡面,只支援基本類型、String及枚舉類型,裡面所有屬性被定義成方法,並允許提供預設值。

       java 5.0開始,在java.lang.annotations中提供了四種元註解,專門註解其他的註解:@Target(註解用於什麼地方)、@Retention(註解運行狀態)、@Documented(產生說明文檔,添加類的解釋)、@Inherited(允許子類繼承父類中的註解)

@Target?  — —註解用於什麼地方

    TYPE,  //給類(型)註解
    FIELD, //給欄位註解,不要忘了,欄位可以是對象
    METHOD, //給方法註解
    PARAMETER, //給參數註解
    CONSTRUCTOR, //給構造方法註解
    LOCAL_VARIABLE, //給局部變數註解
    ANNOTATION_TYPE,//給註解註解(這貌似把自己不當類來看)
    PACKAGE, //給包註解

   @Retention — —註解運行狀態

   SOURCE, //源碼狀態運行,
   CLASS, //編譯類檔案時運行
   RUNTIME //運行時運行

   @Documented — — 產生說明文檔,添加類的解釋 

   @Inherited — —允許子類繼承父類中的註解。

 

 

 

 

 

 

 

 

 

 

 

參考代碼:

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {

/**
* Declares whether the annotated dependency is required.
* <p>Defaults to {@code true}.
*/
boolean required() default true;

}

 

 

 

 

 

 

 

 

boolean required() default true; 這句代碼錶明類的預設值是true

 

個人看法:(不確定正確與否)bean 我們姑且叫做註解(Spring註解)代碼中載入了註解的相應代碼塊被架構標記(就像是遊戲中的仇恨標記一樣)程式通過URL訪問時按照如下過程1、架構識別URL2、在controller註解中匹配URL(通過註解的value或者path)3、在service註解中匹配相關介面4、在Repository註解中匹配資料庫查詢相關操作介面以及實現這些就相當於以註解為單位,用註解(零件)組合成一個完整的操作(產品)(零件 --> 產品 的關係)而註解功能的實現則是基於java的反射機制來實現的反射機制(粗略的看法):調用一個類(比如說是工具類)可以獲得使用該類下的任何一個屬性或者是方法
一己之見

 









java 註解的實現機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.