注解的概念,分类,运用【详细讲解】

为什么要学习注解?
1,能够灵活的使用框架中提供的注解,最后能够读懂框架中的源码
2,能够配合反射,将代码书写的更加灵活,便于维护和扩展,
Properties配置,XML配置,注解配置(java配置)
3,极大的简化了代码,提高了代码的可读性

注解的概述:
java提供了一种源程序中元素和任何信息或者元数据相关联的一种方法或者渠道
源程序中元素:java文件 构造方法,成员变量,成员方法…
信息:就是一些配置数据【理解为注释】
元数据:对注释进行注解,【后面再讲】
关联:元素和注释绑定成为注解

简单来说; 注解类似于一种注释,与源程序中的元素 绑定起来,这种技术可通过反射获取元素对象,在获取到元素对象所绑定的注解,通过绑定的注解获取里面的配置信息,从而达到在程序运行的时候通过这些信息动态的改变程序的运行逻辑。

JDK中常见的注解
@Override: 表示注解修饰的方法必须满足重写的规则
@Deprecated: 表示成员过时,编译器可以在运行的时候获取到该注解
@SupressWarnings: 表示忽略编译器的警告
@FunctionalInterface: 表示该接口是一个函数式接口,并且可以作为Lambda表达式参数传入

注解的分类:
按照运行的机制分类:
源码注解:注解只在源码中有效,当编译生成字节码文件的时候,注解就不存在了,其实就是注释APT
编译时注解:注解在源码和编译时有效,在jvm运行的时候就不存在了
运行时注解:注解在源码和编译有效,同时在程序的执行过程中也存在(反射获取运行时直接,从而获取到注解的配置信息,动态改变程序的逻辑)
元注解:注解上方出现 @ Target 对注解进行注解的注解

按照来源分类:
JDK中自带的注解:@Override,@Deprecated
第三方注解:@Table,@Column,@Component,@Service,@Bean
自定义注解: 自己定义注解使用在自己的代码中
元注解: 对注解进行注解的注解

注解的基本语法:
1,注解由@interface关键字描述
2,注解是由成员,这个成员的含义类似于成员变量,写类似于成员方法,成员是没有参数没有异常声明的
3,注解可以是那些数据类型呢?
4,注解成员可以有默认值 int age ( ) default 18;
5,注解的成员命名有一个小细节(小规模):如果一个注解中只有一个成员,那么这个成员属性的名称叫做value

注解的数据类型
public @interface Table {
String name( );
int age () default 18;
Class<?> clazz( );
Override override ( );
Color c ( );
String [ ] value () ;
}

常见的几个非常重要的元注解
@Retention:表示对他所标注的元素的生命周期(声明周期范围看RetentionPolicy枚举类)
@TarGet:表示标记定义的注解可以和声明目标元素绑定
@Inherited:表示该直接可以被继承
@Document:表示该注解可以被生成API文档

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值