日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

框架基础——全面解析Java注解

發布時間:2023/12/10 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架基础——全面解析Java注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀目錄

  • 一、概念
  • 二、Java中的常見注解
  • 三、注解的分類
  • 四、自定義注解
  • 五、注解的項目實戰
  • 六、注解總結

為什么學習注解?

學習注解有什么好處?

學完能做什么?

答:1. 能夠讀懂別人寫的代碼,特別是框架相關的代碼;

  2. 讓編程更加簡潔,代碼更加清晰;

  3. 讓別人高看一眼。

spring、mybatis使用了大量的注解,會用注解不是目的,會使用自定義注解才是亮點。

java注解在java1.5版本引入。

回到頂部

一、概念

  Java提供了一種原程序中的元素關聯任何信息和任何元數據的途徑和方法。

回到頂部

二、Java中的常見注解

?1、JDK自帶注解

@Override 表示覆蓋或重寫父類的方法;

@Deprecated 表示該方法已經過時了。(當方法或是類上面有@Deprecated注解時,說明該方法或是類都已經過期不能再用,但不影響以前項目使用,提醒你新替代待的方法或是類。如果程序員不小心使用了它的元素,那么編譯器會發出警告信息。)

@SuppressWarnings 表示忽略指定警告,比如@Suppvisewarnings("Deprecation")

比如下面的例子:

person接口:

1 public interface Person { 2 public String name(); 3 4 public int age(); 5 6 /*@Deprecated 表示該方法已經過時了*/ 7 @Deprecated 8 public void sing(); 9 /*注: 10 當方法或是類上面有@Deprecated注解時, 11 說明該方法或是類都已經過期不能再用, 12 但不影響以前項目使用,提醒你新替代待的方法或是類 13 */ 14 }

child實現類:

1 public class Child implements Person { 2 3 /*@Override 表示覆蓋或重寫父類的方法*/ 4 @Override 5 public String name() { 6 // TODO Auto-generated method stub 7 return null; 8 } 9 10 11 @Override 12 public int age() { 13 // TODO Auto-generated method stub 14 return 0; 15 } 16 17 18 @Override 19 public void sing() { 20 // TODO Auto-generated method stub 21 22 }

測試類:

1 public class Test { 2 /*@SuppressWarnings 表示忽略指定警告,比如@Suppvisewarnings("Deprecation")*/ 3 @SuppressWarnings("deprecation") 4 public void sing(){ 5 Person p=new Child(); 6 7 p.sing(); 8 } 9 10 }

?2、第三方注解

具體示例如下:

Autowired將成員變量自動注入進來

回到頂部

三、注解的分類

按運行機制(注解存在于程序的那個階段)將注解分為三類:源碼注解(只在源碼存在)、編譯注解(在class文件中也存在)、運行時注解(在運行階段仍然起作用)

按照來源來分的話,有如下三類:
1:JDK自帶的注解(Java目前只內置了三種標準注解:@Override、@Deprecated、@SuppressWarnings,以及四種元注解:@Target、@Retention、@Documented、@Inherited)
2:第三方的注解——這一類注解是我們接觸最多和作用最大的一類
3:自定義注解——也可以看作是我們編寫的注解,其他的都是他人編寫注解

?

按照功能來分的,還有,元注解——注解的注解。

回到頂部

四、自定義注解

?1、自定義注解的語法要求

?2、元注解

現在逐行分析:

@Target 是注解的作用域?:表示該注解可以用于一個類中的那些屬性及方法上,如果作用域類型有多個用英文逗號分隔

下面是注解的作用域的列表:

@Retention:表示該注解的生命周期

注解按聲明周期有個分類:

@Inherited:此注解是標識性的元注解,表示當前注解可以由子注解來繼承

@Documented:表示生成javadoc的時候會包含注解

?3、使用自定義注解

示例:

注解的定義看起來很像接口的定義,事實上,與其他任何Java接口一樣,注解也將會編譯成class文件。

定義注解時,會需要一些元注解(meta-annotation),如@Target和@Retention。@Target用來定義你的注解將用于什么地方(例如是一個方法或一個域)。@Retention用來定義該注解在哪一個級別可用,在源代碼(SOURCE)、類文件中(CLASS)或者運行時(RUNTIME)。

? 4、解析注解

概念:通過反射獲取類、函數或成員上運行時注解信息,從而實現動態控制程序運行的邏輯。

如:

使用forName()方法加載類,并使用getAnnotation(Description.class)檢查該類是否帶有@Description注解。

注解的繼承只能作用在類上,方法上的注解不會被繼承,Interface中的所有注解不會被繼承。

回到頂部

五、注解的項目實戰

具體示例:

Test測試類:

首先,考慮代碼如何與數據庫進行映射。

上面的Filter類與數據庫表的結構非常相似。

對注解@Table 和@Column進行定義:

接下來考慮query()方法的實現:

運行結果:

?

此時需要對4.3部分改善一下:

?

運行結果:

改善后:

此時運行結果:

以上就基本完成了需求。

回到頂部

六、注解總結

看我們都學會了啥?

?

?

-------------我是低調的分割線--------------------------

總結

以上是生活随笔為你收集整理的框架基础——全面解析Java注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。