<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲国产精品123区| 亚洲另类自拍丝袜第1页| 免费福利在线视频| 亚洲1区1区3区4区产品乱码芒果 | 亚洲AV无码一区二区三区电影 | 国产成人亚洲综合网站不卡| 亚洲AV无码乱码精品国产| 国产免费一区二区视频| 亚洲人成7777| 久久99国产亚洲高清观看首页 | 亚洲国产另类久久久精品小说 | 国产成人免费ā片在线观看老同学| 亚洲成年人免费网站| 亚洲国产成人久久精品99 | 亚洲国产精品线观看不卡| 亚洲AV无码之日韩精品| 亚欧色视频在线观看免费| 日韩少妇内射免费播放| 亚洲免费视频观看| 亚洲综合av永久无码精品一区二区| 久久久久久国产精品免费免费 | 免费看的成人yellow视频| 久久久久久免费一区二区三区| 亚洲熟妇无码一区二区三区| 日韩亚洲一区二区三区| yy6080亚洲一级理论| 麻豆一区二区免费播放网站| 嫩草在线视频www免费看| 免费国产va视频永久在线观看| 亚洲国产精品久久人人爱| 中文字幕专区在线亚洲| 国产一区二区三区在线观看免费| 67194国产精品免费观看| 最近的2019免费中文字幕| 免费一级毛suv好看的国产网站| 亚洲性无码av在线| 久久精品亚洲视频| 丁香五月亚洲综合深深爱| 亚洲av无码专区在线观看素人| 免费无码又爽又高潮视频| 国产成人免费高清激情明星|