注解
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这个注解表示为重写
* 我是说重写不是重载
*
*
*/
@Override
public String toString() {
return super.toString();
}
/**
* 比如我在这里写一个add方法之后呢
* 然后这个时候怎么办呢
* 我在这里加一个重写
* 加一个@Override重写的注解可不可以
* 是不是报错
* 为什么呢
* 因为这个add方法
* 首先我们任何的类
* toString是Object类里面的
* add方法首先在Object类里面根本就没有
* 所以肯定是不行的
* 这个注解是起到编译和检查的作用
* 这个你们都知道
* 我就不去细说了
* 然后还有一个注解
* 警告我们这边写一下
*
* 然后这边还有一个带有标记的
* 比如我在这里写一个方法
* 这样一个new Date方法
* 他首先报了一个杠
* 报了一个横线
* 看到没有
* 为什么呢
* 这表示什么意思
* 是不是相当于过时了
* 是不是api过时了
* 是不是这样的
* 肯定过时了
* 你看一下
* 加这样的一个注解
* 不过我这样怎么做呢
* 我自定义一个过时方法
* 我这样写@Deprecated
* 看到没有
* 我要写成静态的
*
*
*
*/
@Deprecated
public static void add() {
// // api 过时
new Date().parse("");
}
/**
* 这个代码就比较简单
*
* @param args
*/
@SuppressWarnings("all")
public static void main(String[] args) {
/**
* 我不写泛型
* 他就会报了一个黄的
* 是不是做一个警告
* 我们没有指定具体的泛型类型
* 有的放在方法上面
* 有的放在类上面
* 进行去警告
* 这个具体看你们自己
* 这个警告我相信你们之前都用过的
* 去警告我就不去细说
* 有的人说我去写all
* @SuppressWarnings("all")
* 把所有的警告全部清除掉
* 警告的话具体怎么来说呢
* 看你们自己好吧
* 这个我就不去细说了
* 这个就比较简单
* 你如果不想使用警告的话
* 你就加个泛型就可以了
*
*
*
*
*/
new ArrayList();
/**
* 然后调用这个方法
* 这样是不是相当于过时了
* 这表示不推荐使用
* 这几个注解比较简单
* 大致的给大家说一下
* 这是他JDK里面内置的几个注解
* 我们讲的是自定义注解
*
*/
add();
}
}