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

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

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

    cmd

    ejb3 學習第一篇 annotation

    ejb3是javaee5的標準,他吸收了開源框架的許多優點,非常希望大家學習并應用到實際應用當中。
    ejb3完全是構建于annotation之上的,我將分為幾篇討論。

    這篇是自己關于注解的理解筆記

    先從RetentionPolicy這個開始把,RetentionPolicy是一個枚舉,他是對于編譯器的一個聲明。
    然而Annotations在編譯的過程會中記錄到類文件。
    RetentionPolicy的枚舉成員一共有三個
    SOURCE 編譯器要丟棄的注釋。
    CLASS 編譯器將把注釋記錄在類文件中,但在運行時 VM 不需要保留注釋。
    RUNTIME 編譯器將把注釋記錄在類文件中,在運行時 VM 將保留注釋,因此可以反射性地讀取。(激發注解在運行時生效)
    ----在這里注意一下java.lang.reflect.AnnotatedElement這個接口主要定義了獲得注解和判斷注解是否描述了某個java元素。

    在說一下這兩個
    Retention,Target (jdk提供的注解)

    示例
    Target 源碼:
    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.ANNOTATION_TYPE)
    public @interface Target {
    ??? ElementType[] value();
    }

    說明:
    ????? 1.自己可以描述自己,ElementType 描述聲明類型(該注解可以用于哪些元素上邊)。
    ????? 2.這個注解是用來描述自己定義的元數據,也應該叫做元注解,然而我們定義的元數據通常是為類或者方法而聲明的。
    ?????
    3.@Retention(RetentionPolicy.RUNTIME )用來保證在java運行時運行注解。

    其實注解就是變向的簡化java的反射以及把spring等容器ioc和aop的相關概念從往常的xml作為元數據提了一個高度聲明至類中,摒棄掉了項目 擴大時冗長的xml的配置。

    一般通過類或者方法的反射調用注解的方式如下
    ??????????? for (Method m : Class.forName(className).getMethods()) {
    ?????????????? if (m.isAnnotationPresent(MyAnnotation.class)) {
    ????????????????? try {
    ???????????????????? m.invoke(null);//根據方法有無參數設置是否為null
    ????????????????? } catch (Throwable ex) {
    ???????????????????? System.out.printf("失敗");
    ????????????????? }
    ?????????????? }

    概念上應注意的幾點:
    1.在Annotation中,沒有默認值的成員必須有一個成員值。而如何理解默認值是如何被處理就是一個很重要的細節:annotation類型所定義的

    成員默認值被存儲在class文件中,不被編譯到annotation里面。如果我們修改一個annotation類型使其成員的默認值發生了改變,這個改變對 于所有此類型的annotation中沒有明確提供成員值的成員產生影響(即修改了該成員的成員值)。即使在annotation類型使其成員的默認值被 改變后annotation從沒被重新編譯過,該類型的annotation(改變前已經被編譯的)也受到影響。

    這篇基本先寫到這里,java元數據其實是很大的一塊,我只是粗略的看了一下基本的概念,用來學習ejb作一個鋪墊。關于annotation的詳情介 紹可以閱讀參考文獻中的兩篇文章。在下一章中我要介紹一下ejb中常用的annotation。

    參考文獻:
    ?? jdk源碼
    ?? Java Annotation入門
    http://www.matrix.org.cn/resource/article/44/44048_Java+Annotation.html
    ???Java Annotation手冊 http://www.matrix.org.cn/resource/article/44/44055_Java+Annotation+Reflect.html

    posted on 2006-08-13 23:14 靜夜思 閱讀(1756) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产免费高清69式视频在线观看| 亚洲国产成AV人天堂无码| 亚洲丰满熟女一区二区哦| 蜜臀98精品国产免费观看| 亚洲av永久无码制服河南实里| 成人在线免费视频| 国产精品亚洲不卡一区二区三区 | 亚洲国产成人手机在线电影bd| 2021在线永久免费视频| 亚洲福利视频一区二区三区| 国产精品色拉拉免费看| 亚洲av无码片区一区二区三区| 无码国产精品久久一区免费| 亚洲熟妇丰满xxxxx| 国产中文字幕免费| 一级免费黄色大片| 日本红怡院亚洲红怡院最新| 99热精品在线免费观看| 久久亚洲最大成人网4438 | 国产色爽免费视频| 国产99久久久国产精免费| 亚洲日韩乱码中文无码蜜桃臀网站| 成人黄网站片免费视频| 777亚洲精品乱码久久久久久 | 亚洲依依成人亚洲社区| 四虎免费永久在线播放| aaa毛片视频免费观看| 亚洲视频精品在线| 99精品全国免费观看视频| 深夜久久AAAAA级毛片免费看| 曰韩亚洲av人人夜夜澡人人爽| 99re免费99re在线视频手机版| 亚洲综合激情五月丁香六月| 国产成人免费片在线观看| 中文字幕无码免费久久| 亚洲免费在线视频播放| 亚洲人成网站色在线入口| 曰批全过程免费视频网址| 羞羞视频免费网站含羞草| 婷婷亚洲综合五月天小说| 国产高清免费在线|