JDK注解概述
注解
Jdk1.5新增新技術,注解。很多框架為了簡化代碼,都會提供有些注解。可以理解為插件,是代碼級別的插件,
在類的方法上寫:@XXX,就是在代碼上插入了一個插件。
注解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。
注解分類:內置注解(也成為元注解 jdk 自帶注解)、自定義注解(Spring框架)
什么是內置注解
(1) @SuppressWarnings 再程序前面加上可以在javac編譯中去除警告--階段是SOURCE
(2) @Deprecated 帶有標記的包,方法,字段說明其過時----階段是SOURCE
(3)@Overricle 打上這個標記說明該方法是將父類的方法重寫--階段是SOURCE
講一個非常高大上的東西,就是去手寫一個@Transaction注解,我希望我今天講完手寫事務之后,我覺得對任何學員都有非常大的幫助,因為你們在今后的時候,比如在做架構師的時候,可能會經常封裝一些工具類,那我們先從基礎開始講起,這個注解你們都熟不熟,有沒有誰自定義過注解的,我大概發10分鐘的時間講一下,這個注解我相信只要剛學JAVASE的時候,都是講過的,但是你們有沒有自定義過注解,就是自己寫一個,有沒有,自己寫一個,我們今天要講,我這個講快一點,因為這個比較簡單,我就直接做個總結,這個自定義注解是JAVA JDK1.5之后,他就產生一個注解,注解他的目的是干嘛,你們誰能說一下,我們這節課還會講一遍的,還會給你講一下的,因為我們會從0開始寫框架,所以我還會給大家講一下的,然后注解你們都是會比較清楚,最大的優點是什么啊,能夠簡化一下xml配置,比如像你們之后,他的目的卻是是能夠簡化xml配置,比如你們以后學到SpringBoot的時候,為什么要講到這個呢,因為你們到SpringBoot的時候,他根本就不用到xml,就是通過注解方式替代xml了,這樣的目的是什么呢,能夠去簡化這樣的一個代碼,一個量,所以我相信你們一定用過很多注解的,其中說一下,你們用過哪些注解,誰能夠講一下的,誰能夠講一下用過哪些注解,都可以說出來,什么service,什么resource,什么value都可以,我就不細說了,你們可能都用過了,那首先注解他分為兩種,JDK他自帶的注解,還有一種他叫做自定義注解,像你們用過SpringMVC的時候,你就會發現在SpringMVC框架里面,基本上是通過注解來做URL路徑設計的,那么這個我就要講一下,像你們用過一些類的注解,我大概說一下,類的注解大概有哪一些,是這些,我先寫個簡單的例子
package com.learn;import java.util.ArrayList;
import java.util.Date;/*** 首先講第一個注解* * * @author Leon.Sun**/
public class Test002 {// @Override 表示為重寫/*** 你們在用toString方法的時候發現* 他在這上面是不是加上這個注解@Override* 這個注解它是起什么樣的作用啊* 誰能夠說一下的* 這個注解他起什么樣的作用* 誰能夠跟我講一下的* 重載需要用到注解嗎* 重寫記住* 記住是重寫* 這個注解表示重寫的* JDK1.5出來之后這個注解也是可以用到的* @Override這個注解表示為重寫* 我是說重寫不是重載* * */@Overridepublic String toString() {return super.toString();}/*** 比如我在這里寫一個add方法之后呢* 然后這個時候怎么辦呢* 我在這里加一個重寫* 加一個@Override重寫的注解可不可以* 是不是報錯* 為什么呢* 因為這個add方法* 首先我們任何的類* toString是Object類里面的* add方法首先在Object類里面根本就沒有* 所以肯定是不行的* 這個注解是起到編譯和檢查的作用* 這個你們都知道* 我就不去細說了* 然后還有一個注解* 警告我們這邊寫一下* * 然后這邊還有一個帶有標記的* 比如我在這里寫一個方法* 這樣一個new Date方法* 他首先報了一個杠* 報了一個橫線* 看到沒有* 為什么呢* 這表示什么意思* 是不是相當于過時了* 是不是api過時了* 是不是這樣的* 肯定過時了* 你看一下* 加這樣的一個注解* 不過我這樣怎么做呢* 我自定義一個過時方法* 我這樣寫@Deprecated* 看到沒有* 我要寫成靜態的* * * */@Deprecatedpublic static void add() {// // api 過時new Date().parse("");}/*** 這個代碼就比較簡單* * @param args*/@SuppressWarnings("all")public static void main(String[] args) {/*** 我不寫泛型* 他就會報了一個黃的* 是不是做一個警告* 我們沒有指定具體的泛型類型* 有的放在方法上面* 有的放在類上面* 進行去警告* 這個具體看你們自己* 這個警告我相信你們之前都用過的* 去警告我就不去細說* 有的人說我去寫all* @SuppressWarnings("all")* 把所有的警告全部清除掉* 警告的話具體怎么來說呢* 看你們自己好吧* 這個我就不去細說了* 這個就比較簡單* 你如果不想使用警告的話* 你就加個泛型就可以了* * * * */new ArrayList();/*** 然后調用這個方法* 這樣是不是相當于過時了* 這表示不推薦使用* 這幾個注解比較簡單* 大致的給大家說一下* 這是他JDK里面內置的幾個注解* 我們講的是自定義注解* */add();}}
?
總結
- 上一篇: 自定义注解事务课程回顾
- 下一篇: 自定义注解使用