精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于 Java 注解(annotation)編程

開發 后端
今天在看以前寫的代碼,發現自己對注解的了解還不是非常透徹,經常選擇性就忽視了對注解實現的探究,遂查詢資料學習了一下。

[[384114]]

 前言

今天在看以前寫的代碼,發現自己對注解的了解還不是非常透徹,經常選擇性就忽視了對注解實現的探究,遂查詢資料學習了一下。

注解是什么

實現格式

從代碼來看我們知道注解的實現格式是:

  1. public @interface MyAnnotation{ 
  2.     屬性列表; 

 所以我們有了第一直覺,注解可能是一個接口。通過查詢資料得知(可以通過反編譯軟件),實際上 @interface 是自定義接口對 annotation 接口的繼承,@interface 實際是一個語法糖。 

  1. import java.lang.annotation.Annotation; 
  2. public interface MyAnnotation extends Annotation{ 
  3.     屬性列表; 

 使用位置

類、方法、成員變量、形參位置。

分類

不同角度,我們對注解能有不同的分類,但知道了注解的實現原理后就會明白,實際上用法和實現方法都是一回事。

來源

1. JDK注解:一般都是在編譯時起用作的注解,比如我們最為熟悉的 @Override。

2. 第三方框架注解

3. 自定義注解

運行機制(保留策略)

  1. @Retention({保留策略}) 
  2.     public @interface MyAnnotation{ 
  3.         屬性列表; 
  4.     } 

 1.源碼(SOURCE)注解:注解只在源碼中存在,編譯成.class文件就不存在了,也就是說只能起到 “看” 的作用。

2.編譯(CLASS)注解:注解在源碼和.class文件中都存在(JDK自帶注解都屬于編譯時注解),一般用來作語法校驗。

3.運行(RUNTIME)注解:在運行階段還起作用,甚至會影響運行邏輯的注解(@Autowired屬于運行時注解),第三方框架和自定注解一般采用 runtime 的保留策略,能實現依賴注入、切面編程等功能。

元注解

實際在上面,我們已經看到一個元注解了(@Retention)。元注解就是加在注解上描述注解的注解。 一共有5個。

1. @Documented

在生成javadoc的時候就會把@Documented注解給顯示出來。

2. @Target(關鍵)

限定作用位置,Method、Class等等。

9. @Inherited

被 @Inherited 注解的注解修飾了一個父類,如果他的子類沒有被其他注解修飾,則它的子類也繼承了父類的注解。

10. @Retention(關鍵)

上文的保留策略注解,影響注解作用。

6. @Repeatable (不重要)

@Repeatable 注解是用于聲明其它類型注解的元注解,來表示這個聲明的注解是可重復的。@Repeatable的值是另一個注解,其可以通過這個另一個注解的值來包含這個可重復的注解。

如何使用

我們先來了解一下注解粗淺的使用。最簡單的,

使用自定義注解就是分為三步:定義注解、使用注解、讀取注解。


摘自:https://www.zhihu.com/question/47449512/answer/658228092

我們只要牢牢地把握住這三步,就能掌握注解的使用。

定義注解

因為,注解的基本作用是根據注解中的值,判斷該如何執行被注解代碼塊。所以,在定義注解時,除了要根據功能加元注解外,還要根據業務意義,編寫合適的方法名稱。

比如,如果我們要編寫一個鎖注解:

  1. @Documented 
  2. @Retention(RUNTIME) 
  3. @Target({TYPE, METHOD}) 
  4. public @interface Lock { 
  5.     //輸鎖名稱 
  6.     String lockName(); 
  7.     //被鎖值 
  8.     String key(); 
  9.     //鎖級別 
  10.     int level(); 
  11.     //異常 
  12.     String exception() default ""

 在一個注解中,能夠返回的類型有:基本數據類型、String、enum、Class、其他注解以及前幾者的一維數組。

注意: 如果沒有 default,那么使用時就必須要入參。

使用注解

注解在該注解的地方,入參必入參的參數。

Tips:如果注解中只有一個函數,雖然使用時候不需要加函數名稱就可以直接入參,但個人建議對于自定義注解,在入參時,還是將函數名稱寫全,增強代碼可讀性。

讀取注解

我們先想一想,如果是我們自己實現一個注解讀取的方法,我們該怎么來實現呢?

目前我想到的無非就是兩個:

1. 在字符串或字節碼文件中找注解:這個判斷可不好寫啊,而且復雜字符串處理不了。

2. 通過反射獲得類、方法、成員變量上的注解。

明眼人就能看出來 2 比 1 靠譜多了,而且還容易實現。

最簡單的一種讀取方式:

  1. public static void main(String[] args) throws NoSuchMethodException { 
  2.      Class<Module> modelClazz = Module.class; 
  3.      Method method = modelClazz.getMethod("lock"null); 
  4.      Lock annotationLock = method.getAnnotation(Lock.class); 
  5.      //獲取注解在 lock 方法上的 value 
  6.      String lockName = annotationLock.lockName(); 
  7.  } 

 這也是框架注解的基本實現原理,因為要獲取注解的具體代碼塊,所以一般需要掃描包。

對于切面編程,引入依賴 aspectj 后,那我們就有了更簡單的調用方法:

  1. //切面代碼節選 
  2.    public Object around(ProceedingJoinPoint pjp) throws Throwable { 
  3.        MethodSignature signature = (MethodSignature) pjp.getSignature(); 
  4.        Lock lock = signature.getMethod().getAnnotation(Lock.class); 
  5.        lock.lockName(); 
  6.    } 

 具體關于切面編程與 joinpoint 的知識,可以參考:

https://blog.csdn.net/qq_15037231/article/details/80624064

注解的作用

至此我們可以總結出注解的作用。

* 編程提示

保留策略為源碼的注解,一般為提示性注解,比如 @deprecated。

* 用于切面,減少重復代碼

保留策略為運行的注解,0入侵改變函數的運行效果,一般用于重復性功能,比如日志輸出、數據格式校驗等。

* 簡化配置信息,項目結構

主要是對于 springboot 這個框架的作用。因為注解可以取值,所以在設置默認配置信息的同時,也支持輸入配置信息。

* 格式校驗

一般為代碼的語法檢驗,存在與 jdk 的注解包中,比如 @Override。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2011-07-19 09:38:41

一維數組Junit靜態成員

2017-05-12 15:47:15

Spring BootMybatis Ann Web

2009-06-11 10:00:05

Java Socket

2013-04-01 09:39:06

JavaJava異常

2021-04-13 08:25:12

測試開發Java注解Spring

2020-09-11 09:10:18

編程程序員開發

2009-06-15 16:05:30

設計AnnotatioJava

2009-09-22 11:30:57

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門

2024-08-26 08:27:18

2018-09-12 11:18:56

finalJava用法

2020-11-20 07:58:04

Java

2013-05-28 09:47:36

異常處理Javay異常

2010-06-23 16:05:36

Linux Bash

2013-04-18 09:29:02

編程語言編程

2011-05-03 13:13:52

編程PHPJava

2011-08-09 14:24:18

iPhone多線程線程

2011-08-15 15:56:29

Cocoa編程模塊

2021-12-30 12:30:01

Java注解編譯器

2009-09-22 17:32:38

Hibernate A
點贊
收藏

51CTO技術棧公眾號

日韩激情一区二区三区| 天天操精品视频| 国产三区四区在线观看| 日本不卡不码高清免费观看| 丝袜亚洲另类欧美重口| 日本xxxx免费| 在线成人视屏| 最新不卡av在线| 国产视频一区二区不卡| 精品国产青草久久久久96| 欧美 亚欧 日韩视频在线 | 可以免费在线看黄的网站| 9色在线视频| 99精品欧美一区二区蜜桃免费 | 国产精品人人做人人爽人人添| 97人人香蕉| 无码视频在线观看| 在线精品亚洲| 日韩视频免费在线观看| 自拍偷拍视频亚洲| 日韩精品免费视频一区二区三区 | 久久97精品久久久久久久不卡 | 日本wwwxxxx| 久久国产精品99久久久久久老狼| 国内精久久久久久久久久人| 多男操一女视频| 欧美女王vk| 久久视频在线| 日本一区二区三区dvd视频在线| 亚洲综合第一页| 波多野结衣大片| 国产亚洲一级| 韩国福利视频一区| 青娱乐av在线| 综合精品久久| 久久中文久久字幕| 女人裸体性做爰全过| 亚洲黄页网站| 亚洲欧洲偷拍精品| 内射中出日韩无国产剧情| 97久久亚洲| 日韩欧美国产一二三区| 激情图片中文字幕| 偷拍自拍亚洲| 91.com视频| www午夜视频| 国产91欧美| 欧美日韩一区二区三区高清 | 黄色在线观看免费| 影视一区二区| 美女福利视频一区| 免费看一级大片| 亚洲国产精品日韩专区av有中文 | 麻豆天美蜜桃91| 99久久www免费| 久久国内精品一国内精品| 成人18视频免费69| 68国产成人综合久久精品| 久久久久999| 欧美成人一区二区三区高清| 欧美日韩a区| 欧美大尺度激情区在线播放| 麻豆亚洲av成人无码久久精品| 午夜日韩视频| 91精品国产色综合| 久久亚洲国产精品日日av夜夜| 日本美女视频一区| 日韩午夜视频在线| 欧美一级片在线看| 美女日批在线观看| 久久99偷拍| 亚洲三级黄色在线观看| 熟女少妇内射日韩亚洲| 97精品一区二区| 久久6精品影院| 欧美一二三区视频| 青青草成人在线观看| 国产综合在线观看视频| 国产高潮流白浆喷水视频| 丁香桃色午夜亚洲一区二区三区 | 精品久久成人| 久久亚洲精品小早川怜子66| 国产一二三四在线| 久久久久网站| 91精品在线观| 香蕉视频黄色片| 国产精品无码永久免费888| 国产精品久久成人免费观看| 国产黄色大片在线观看| 在线影视一区二区三区| 污免费在线观看| 欧美精品中文字幕亚洲专区| 中文字幕久久精品| 黄色一级片在线| 视频精品一区二区| 97se视频在线观看| 久久精品a一级国产免视看成人| 自拍偷拍国产精品| 国产91在线视频观看| 99久久999| 亚洲欧美另类国产| 永久免费看黄网站| 视频一区二区不卡| 国产一区二区高清视频| 18视频免费网址在线观看| 亚洲一二三区视频在线观看| 国产九九在线视频| 蜜臀av一区| 久久久国产一区二区| 你懂的国产视频| 国产精品羞羞答答xxdd| 日韩国产欧美精品| a级片在线免费| 51精品国自产在线| 国产又粗又猛又爽又黄av| 女人色偷偷aa久久天堂| 国产精品女人久久久久久| 人妻中文字幕一区| 亚洲免费观看在线视频| 一区二区三区入口| 亚洲精品aaaaa| 色综合久久久888| 97超碰资源站| 国产欧美日产一区| 欧美国产日韩激情| 中文字幕久久精品一区二区 | 久久精品国产久精国产| 九色综合日本| 咪咪网在线视频| 亚洲精品一区二区三区香蕉| 日韩女优一区二区| 精品系列免费在线观看| 亚洲v欧美v另类v综合v日韩v| 无遮挡在线观看| 日韩av在线天堂网| 日本在线免费观看| 不卡电影一区二区三区| 男人天堂av片| 好吊妞视频这里有精品 | 久热这里只有精品在线| 国产米奇在线777精品观看| 亚洲三级一区| 精品久久在线| 日韩小视频在线| 91麻豆一区二区| 亚洲图片你懂的| 亚洲欧美日本一区二区| 性欧美欧美巨大69| 91久久精品美女高潮| 国产婷婷视频在线| 91精品中文字幕一区二区三区| 性欧美疯狂猛交69hd| 国产一区二区福利| 国产精品视频一二三四区| 日韩欧美中文字幕在线视频| 欧美高清视频在线| 欧美自拍偷拍第一页| 欧美日韩国产中文字幕 | 一区二区在线看| 韩国三级hd中文字幕有哪些| 国内精品亚洲| 久久久久久久久一区二区| 依依综合在线| 伊人亚洲福利一区二区三区| 亚洲网站在线免费观看| 亚洲图片你懂的| 国产chinese中国hdxxxx| 国产欧美丝祙| 亚洲第一导航| 日韩精品免费视频一区二区三区| 午夜精品久久17c| 麻豆国产在线播放| 精品视频一区 二区 三区| 神马久久精品综合| 成人涩涩免费视频| 日韩精品一区二区三区不卡| 国产高清欧美| 国产亚洲自拍偷拍| 欧美爱爱视频| 国模视频一区二区三区| 国产粉嫩一区二区三区在线观看 | 午夜精品久久| 久久国产主播精品| 青娱乐极品盛宴一区二区| 欧美成人午夜剧场免费观看| 丝袜视频国产在线播放| 精品视频色一区| 日韩成人av毛片| 国产精品免费视频一区| wwwxx日本| 麻豆久久一区二区| 免费看又黄又无码的网站| 成人黄色小视频| 国产三区精品| av成人在线网站| 日本午夜精品理论片a级appf发布| 欧美a免费在线| 精品少妇一区二区三区免费观看| 久久精品久久久久久久| 一区二区免费看| 天天干天天操天天拍| 成人av高清在线| 奇米视频7777| 久久男女视频| 人妻夜夜添夜夜无码av| 欧美激情电影| 青青草成人网| 久久a爱视频| 91老司机精品视频| 欧美日韩激情电影| 91av视频在线观看| 手机电影在线观看| 久久精品视频免费播放| 精品电影在线| 日韩精品在线影院| 亚洲精品成av人片天堂无码| 欧美精品久久99久久在免费线 | 亚洲精品ady| 精品国自产拍在线观看| 欧美日韩国产影片| 伊人久久久久久久久久久久| 午夜天堂影视香蕉久久| 午夜少妇久久久久久久久| 国产精品无遮挡| 欧美黄色一级生活片| 99国产精品99久久久久久| 妖精视频在线观看| 精品亚洲成a人| 国产精品一区二区小说| 视频一区在线播放| 8050国产精品久久久久久| 国产又粗又长又爽又黄的视频| 亚洲资源av| 2018国产在线| 国内久久视频| 一区二区三区日韩视频| 欧美hentaied在线观看| 亚洲 国产 欧美一区| 激情综合网五月| 日本不卡二区| 蜜臀av免费一区二区三区| 久久福利电影| 综合干狼人综合首页| 蜜桃麻豆www久久国产精品| 牛牛视频精品一区二区不卡| 韩国成人av| 欧美巨大xxxx| 蜜桃麻豆91| 精品国精品国产自在久国产应用 | 亚洲午夜精品17c| 欧美色图一区二区| 亚洲黄色小视频| 久久久久成人网站| 亚洲图片欧美综合| 亚洲天堂日韩av| 色综合色综合色综合 | 欧美aaaaaaa| 韩国v欧美v日本v亚洲| 深夜av在线| 国产成人jvid在线播放| 91亚洲视频| 亚洲一区二区三区xxx视频| 精品国产第一国产综合精品| 亚洲在线免费视频| 国产图片一区| 欧美午夜免费| 色婷婷综合网| www.国产在线播放| 午夜亚洲福利在线老司机| 五月婷婷深爱五月| 激情六月婷婷综合| 韩国三级hd两男一女| 2024国产精品| 美国黄色片视频| 午夜精品一区二区三区免费视频 | 人人妻人人澡人人爽| 欧美一区二区三区红桃小说| 久久资源av| 四虎成人av| 国产高清www| 轻轻草成人在线| 国产麻豆剧传媒精品国产| 99久久er热在这里只有精品15| www在线观看免费视频| 亚洲男同1069视频| 色屁屁影院www国产高清麻豆| 欧美人xxxx| 亚欧在线观看视频| 精品国产一区二区三区久久久狼| eeuss鲁一区二区三区| 国产精品高潮呻吟久久av无限| 欧一区二区三区| 天天爽天天狠久久久| 国内自拍视频一区二区三区| 国产精彩免费视频| 国产凹凸在线观看一区二区| 香蕉久久久久久久| 亚洲v中文字幕| 国产精品美女一区| 亚洲欧美中文字幕在线一区| 激情影院在线| 国产欧美日韩免费看aⅴ视频| 久久97久久97精品免视看秋霞| 丰满女人性猛交| 日韩高清在线一区| 美女黄色一级视频| 亚洲视频在线观看三级| 天码人妻一区二区三区在线看 | 日本wwww色| 中文一区一区三区高中清不卡| 国产无遮无挡120秒| 欧美精品日日鲁夜夜添| 国产午夜精品一区理论片| 久久久久久九九九| 国产精品视频一区视频二区| 日韩精品久久久毛片一区二区| 伊人久久久大香线蕉综合直播 | 欧美大荫蒂xxx| 羞羞视频在线观看一区二区| 欧美下载看逼逼| 国产精品久久国产愉拍| 图片区偷拍区小说区| 国产精品电影一区二区| 日本三级一区二区三区| 亚洲欧美日韩天堂| 看黄在线观看| 国产精品制服诱惑| 韩国亚洲精品| 制服.丝袜.亚洲.中文.综合懂| 17c精品麻豆一区二区免费| 中文字幕理论片| 在线观看日韩欧美| 日韩漫画puputoon| 日韩电影在线播放| 快she精品国产999| 四虎国产精品成人免费入口| 狠狠操狠狠色综合网| 日韩大胆视频| 热99在线视频| 国产精品一线天粉嫩av| 免费观看精品视频| 久久在线免费观看| 久久国产视频一区| 亚洲色图17p| 久久人体av| 宅男噜噜99国产精品观看免费| 美日韩一级片在线观看| 999福利视频| 在线不卡欧美精品一区二区三区| 老司机在线看片网av| 亚洲一区二区在线| 欧美视频久久| 成人在线电影网站| 欧美性xxxxxx| 粉嫩av在线播放| 成人疯狂猛交xxx| 欧美精品97| 国产精品一区二区无码对白| 午夜精品久久久| 黄色在线免费观看大全| 国产美女被下药99| 欧美精品1区| 亚洲一区二区观看| 欧美性感一类影片在线播放| 精品美女在线观看视频在线观看 | 国产香蕉在线观看| 91av视频在线免费观看| 欧洲杯足球赛直播| 天堂在线精品视频| 精品久久久久久久久久久久| 你懂的视频在线| 成人午夜一级二级三级| 韩国精品一区二区三区| 国产伦理片在线观看| 91精品久久久久久久91蜜桃| caoporn视频在线| 日韩久久在线| 国产一区二区免费在线| 99热国产在线观看| www.日韩欧美| 精品国产影院| 久热精品在线播放| 图片区小说区区亚洲影院| 成人免费黄色网页| 国产v亚洲v天堂无码| 日本成人在线视频网站| 黄色一级视频免费| 一夜七次郎国产精品亚洲| 精品国产亚洲一区二区在线观看 | 在线观看成人av电影| 成人免费三级在线| 亚洲国产无线乱码在线观看| 九九九久久国产免费| 国产欧美日韩一区二区三区四区| 国产九九九视频| 欧美中文字幕一区| 超碰97免费在线| 中文字幕一区二区三区乱码| 91小视频在线观看| 国产成人精品亚洲精品色欲|