<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    asdtiang的博客 感謝blogjava提供的博客交流平臺

    java 元數據學習筆記1----什么是元數據(轉)

    Posted on 2010-03-09 16:25 asdtiang 閱讀(325) 評論(0)  編輯  收藏 所屬分類: JAVA
    元數據是關于數據的數據。在編程語言上下文中,元數據是 添加到程序元素如方法、字段、類和包上的額外信息。
    元數據的作用
    •  一般來說,元數據可以用于創建文檔,跟蹤代碼中的依賴 性,執行編譯時檢查,代碼分析。
    • 元數據還可用于協助程序元素與框架或者EJB、 EMF 和 TestNG這樣的工具之間的通信。EJB 3.0就廣泛地應用了Java元數據,通過元數據來實現聲明性請求企業服務,依賴性以及資源注入,消除了嚴格的EJB組件模型約束,并且取代了復雜的 XML配置文件。
    • 元數據甚至使我們可以不用修改核心語言,就能夠在 Java 語言中添加新功能,使核心語言成為一種開放式語言。在純面向對象的語言中實現AOP就是使用元數據進行語言擴展的一個很好的例子。 AspectWerkz、JBoss AOP以及AspectJ5 使用元數據將類的語義轉換為一個aspect、將數據字段轉換為一個pointcut、將方法轉換為一個advice,等等。
    Java平臺的元數據
    Java 元數據(Annotation)是 J2SE 5.0 (研發歷時近三年,于2004年9月30日正式發布,代號為“Tiger”)新增加的功能之一,它在JSR-175規范中有詳細定義。該機制允許在 Java 代碼中添加自定義注釋,并允許通過反射(reflection),以編程方式訪問元數據注釋。通過提供為程序元素附加額外數據的標準方法,元數據功能具有 簡化和改進許多應用程序開發領域的潛在能力,其中包括配置管理、框架實現和代碼生成。
     
    Annotation不直接影響程序的語義。然而,開發和部署工具可以讀取這些注釋,并以某種形式處理這些注釋,可能生成其他 Java源程序、XML配置文件或者要與包含注釋的程序一起使用的其他組件,從而影響運行狀態的程序的語義。注釋可以從源代碼中讀取,從編譯后 的.class文件中讀取,也可以通過反射機制在運行時讀取。
     
    Annotation具有以下的一些特點:
    •  元數據以標簽的形式存在于Java代碼中。 
    •  元 數據描述的信息是類型安全的,即元數據內部的字段都是有明確類型的。 
    •  元數據需要編譯器之外的工具額外的處理用來生成其它的程 序部件。 
    •  元數據可以只存在于Java源代碼級別,也可以存在于編譯之后的Class文件內部。
    事實上,早在JDK5.0推出語言級的元數據機制Annotation以前,就一直存在對元數據的需求。但是由于沒有提供表達元數據 的標準機制,出現了各種解決方案。下面羅列了一些例子
    •  transient 關鍵字 
    •  Serializable 標記接口
    •  xml 部署描述文件 
    • manifest.mf 文件    
    • Javadoc 標記(將文檔直接寫在源程序里,極大的方便了文檔的編寫)
    •  XDoclet(使 用類似于JavaDoc的語法撰寫描述信息,并使用工具生成描述文件)
    這 些方法都存在一定的局限性,比如使用關鍵字不具有擴展性,用戶自定義新的關鍵字;標記接口沒有提供額外的信息,它們不能帶有參數,并且只能處理類,而不能 處理字段或方法或包。Javadoc和XDoclet標記不會被編譯器檢查。
     
    最后,我們再詳細的對比一下Annotation和XML部署描述文件的優劣
    • XML配置文件與代碼文件分離,不利于一致性維護,缺乏在運行時的反射機制。而Annotation與代碼一起被編譯器處理,并能夠 在運行時訪問。
    • 通常XML配置文件都很復雜而且冗長,為了配置代碼,XML文 件必須復制許多信息:比如代碼中類名字和方法名字。Java注釋則不同,它是代碼的一部分,不需要額外的引用就可以指明配置信息。
    • XML配置文件是文本文件,沒有顯式的類型支持,需要到運行時刻才能發現隱藏的錯誤。而 Annotation是類型安全的,它會被編譯器檢查。  
    • XML文件可以表達復雜的關系,但是在注釋中我們卻很難表達 復雜的或層次的結構。
    •  XML配置文件是在代碼之外被單獨處理的,也就是說基于XML的配置信息不是硬編碼的,可以部 署的時候進行修改。而修改Annotation則需要進行重新編譯,不過我們可以利用AOP提供的機制為已有的代碼添加Annotation。通過部署不 同的AOP模塊,就能使代碼具有不同的Annotation,但比起直接修改XML顯得復雜。
    總 而言之,注釋是簡單易用的,并且對大多數應用來說已經足夠了。而XML文件更復雜,但具有部署的靈活性,因而被用來處理與部署相關的決策。注釋與XML配 置文件可以一起使用。由于注釋只能保存相當少的配置信息,只有預先集成的框架組件(類似在框架組件中已經完成了大多數預備工作)可以廣泛地把注釋作為配置 選項。而XML配置文件作為一個可選的重載機制,可以用于改變注釋的默認行為。

    天蒼蒼,野茫茫,風吹草底見牛羊

    posts - 80, comments - 24, trackbacks - 0, articles - 32

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
    主站蜘蛛池模板: 国产精品免费久久| 妞干网在线免费观看| 亚洲精品视频在线观看你懂的| 免费在线观看日韩| 亚洲成a∨人片在无码2023| 女人被男人桶得好爽免费视频| 一本色道久久88亚洲精品综合| 91精品成人免费国产| 在线亚洲精品自拍| 在线成人精品国产区免费| 永久免费AV无码网站在线观看| 亚洲国产精品久久久久秋霞小| 国产免费卡一卡三卡乱码| 特级av毛片免费观看| 成年女人免费视频播放77777| 亚洲精品无码不卡在线播HE| 日本亚洲中午字幕乱码| 免费福利在线播放| 亚洲一区二区三区在线网站| 午夜男人一级毛片免费| 污视频网站在线观看免费| 久久精品无码一区二区三区免费| 亚洲va久久久噜噜噜久久狠狠| 日本永久免费a∨在线视频| 国产AV无码专区亚洲AV漫画| 三年片在线观看免费观看大全动漫| 国产免费私拍一区二区三区 | 亚洲第一精品在线视频| 日本一卡精品视频免费| 亚洲国产日产无码精品| 国产精品麻豆免费版| 亚洲视频一区二区三区四区| 国产精品免费视频一区| 日韩精品无码免费专区网站| 亚洲欧洲日韩综合| 国产曰批免费视频播放免费s| 亚洲国产成人精品无码区二本| 亚洲开心婷婷中文字幕| 免费在线看v网址| 亚洲已满18点击进入在线观看| 青青青国产色视频在线观看国产亚洲欧洲国产综合 |