最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java注解和動態(tài)代理

 更新時間:2017年09月21日 11:57:38   作者:一個想變文藝的程序員  
這篇文章主要介紹了Java中有關(guān)注解和動態(tài)代理的一些知識,涉及了Annotation、數(shù)據(jù)類型等相關(guān)內(nèi)容,需要的朋友可以參考下。

本文主要介紹Java中與注解和動態(tài)代理有關(guān)的部分知識,接下來我們看看具體內(nèi)容。

Annotation(注解)

其實就是代碼里的特殊標(biāo)記, 它用于替代配置文件,也就是說,傳統(tǒng)方式通過配置文件告訴類如何運行,有了注解技術(shù)后,開發(fā)人員可以通過注解告訴類如何運行。

1、 三個基本的Annotation:

Override:限定重寫父類方法, 該注解只能用于方法

Deprecated:用于表示某個程序元素(類, 方法等)已過時

SuppressWarnings:抑制編譯器警告.

2、自定義Annotation 使用@interface 關(guān)鍵字

配置文件的信息,在注解中采用屬性描述

例:

String name();

帶默認值的方式:String name() default “xxx”

注解屬性的類型只能是如下類型:

String類型,8大基本數(shù)據(jù)類型,Class類型,枚舉類型,注解類型,以上類型的一維數(shù)組

特殊屬性value:如果注解中有一個名稱value的屬性,那么使用注解時可以省略value=部分,如@MyAnnotation(“xxx")

特殊屬性value[];

3、元Annotation指修飾Annotation的Annotation。

JDK中定義了如下元Annotation:

Retention: 只能用于修飾一個Annotation 定義, 用于指定該Annotation 可以保留的域, @Rentention 包含一個RetentionPolicy 類型的成員變量, 通過這個變量指定域。

RetentionPolicy.CLASS:編譯器將把注解記錄在 class 文件中. 當(dāng)運行 Java 程序時, JVM 不會保留注解. 這是默認值

RetentionPolicy.RUNTIME:編譯器將把注釋記錄在 class 文件中. 當(dāng)運行 Java 程序時, JVM 會保留注解. 程序可以通過反射獲取該注釋(所以自定義一個注解時,一般都要加這個元注解)

RetentionPolicy.SOURCE:編譯器直接丟棄這種策略的注釋

4、@Target:指定注解用于修飾類的哪個成員。@Target 包含了一個名為value,類型為ElementType的成員變量。

@Documented: 用于指定被該元Annotation 修飾的Annotation 類將被javadoc 工具提取成文檔.

@Inherited: 被它修飾的Annotation 將具有繼承性.如果某個類使用了被@Inherited 修飾的Annotation, 則其子類將自動具有該注解

動態(tài)代理

Java提供了一個Proxy類,調(diào)用它的newInstance方法可以生成某個對象的代理對象,使用該方法生成代理對象時,需要三個參數(shù):

1.生成代理對象使用哪個類裝載器

2.生成哪個對象的代理對象,通過接口指定

3.生成的代理對象的方法里干什么事,由開發(fā)人員編寫handler接口的實現(xiàn)來指定。

初學(xué)者必須理解,或不理解必須記住的2件事情:

Proxy類負責(zé)創(chuàng)建代理對象時,如果指定了handler(處理器),那么不管用戶調(diào)用代理對象的什么方法,該方法都是調(diào)用處理器的invoke方法。

由于invoke方法被調(diào)用需要三個參數(shù):代理對象、方法、方法的參數(shù),因此不管代理對象哪個方法調(diào)用處理器的invoke方法,都必須把自己所在的對象、自己(調(diào)用invoke方法的方法)、方法的參數(shù)傳遞進來。

在動態(tài)代理技術(shù)里,由于不管用戶調(diào)用代理對象的什么方法,都是調(diào)用開發(fā)人員編寫的處理器的invoke方法(這相當(dāng)于invoke方法攔截到了代理對象的方法調(diào)用)。

并且,開發(fā)人員通過invoke方法的參數(shù),還可以在攔截的同時,知道用戶調(diào)用的是什么方法,因此利用這兩個特性,就可以實現(xiàn)一些特殊需求,例如:攔截用戶的訪問請求,以檢查用戶是否有訪問權(quán)限、動態(tài)為某個對象添加額外的功能。

總結(jié)

以上就是本文關(guān)于Java注解和動態(tài)代理相關(guān)知識的全部內(nèi)容,希望對大家Java程序設(shè)計有所幫助。更多Java內(nèi)容,感興趣的朋友可以閱讀:關(guān)于Java反射機制 你需要知道的事情、ibatis學(xué)習(xí)之搭建Java項目、Java編程思想對象的容納實例詳解等。

感謝大家對本站的支持!

相關(guān)文章

  • 淺談Java8 的foreach跳出循環(huán)break/return

    淺談Java8 的foreach跳出循環(huán)break/return

    這篇文章主要介紹了Java8 的foreach跳出循環(huán)break/return,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot使用profile如何配置不同環(huán)境的配置文件

    Spring Boot使用profile如何配置不同環(huán)境的配置文件

    ,springboot支持通過不同的profile來配置不同環(huán)境的配置,下面就大致介紹一下yml配置文件跟properties配置文件怎么使用profile配置不同環(huán)境的配置文件
    2018-01-01
  • Java @Transactional與synchronized使用的問題

    Java @Transactional與synchronized使用的問題

    這篇文章主要介紹了Java @Transactional與synchronized使用的問題,了解內(nèi)部原理是為了幫助我們做擴展,同時也是驗證了一個人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的
    2023-01-01
  • 你都理解創(chuàng)建線程池的參數(shù)嗎?

    你都理解創(chuàng)建線程池的參數(shù)嗎?

    這篇文章主要介紹了創(chuàng)建線程池參數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring Cloud Consul的服務(wù)注冊與發(fā)現(xiàn)

    Spring Cloud Consul的服務(wù)注冊與發(fā)現(xiàn)

    這篇文章主要介紹了Spring Cloud Consul服務(wù)注冊與發(fā)現(xiàn)的實現(xiàn)方法,幫助大家更好的理解和學(xué)習(xí)使用spring框架,感興趣的朋友可以了解下
    2021-02-02
  • 解析SpringBoot @EnableAutoConfiguration的使用

    解析SpringBoot @EnableAutoConfiguration的使用

    這篇文章主要介紹了解析SpringBoot @EnableAutoConfiguration的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java中xml和對象之間的互相轉(zhuǎn)換方法

    java中xml和對象之間的互相轉(zhuǎn)換方法

    在java開發(fā)中我們經(jīng)常會遇到Xml與對象互相轉(zhuǎn)換的情況,這篇文章主要給大家介紹了關(guān)于java中xml和對象之間的互相轉(zhuǎn)換方法,文中給出了兩種解決方法,需要的朋友可以參考下
    2023-06-06
  • JAVA偏向鎖的原理與實戰(zhàn)

    JAVA偏向鎖的原理與實戰(zhàn)

    這篇文章主要為大家詳細介紹了JAVA偏向鎖的原理與實戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Java實現(xiàn)文件監(jiān)控器FileMonitor的實例代碼

    Java實現(xiàn)文件監(jiān)控器FileMonitor的實例代碼

    這篇文章主要介紹了Java實現(xiàn)文件監(jiān)控器FileMonitor的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • 淺談基于Token的WEB后臺認證機制

    淺談基于Token的WEB后臺認證機制

    這篇文章主要介紹了淺談基于Token的WEB后臺認證機制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

信丰县| 通化县| 长武县| 清水河县| 上栗县| 通山县| 泰来县| 海口市| 苍山县| 太仓市| 枝江市| 乐陵市| 光山县| 衡山县| 桐柏县| 嘉祥县| 辽宁省| 民乐县| 正阳县| 方正县| 贵港市| 那曲县| 沈丘县| 庆阳市| 叶城县| 丰宁| 嵊州市| 神木县| 屏东市| 孝义市| 墨竹工卡县| 沾益县| 青阳县| 宜兰市| 麻城市| 舞钢市| 当雄县| 平舆县| 眉山市| 平罗县| 宝丰县|