慕课网 Java注解 学习笔记

注解的作用:

  1. 能够读懂别人写的代码,特别是框架相关的的代码
  2. 让变成更加简洁,代码更加清晰
  3. 让别人高看一眼

不懂注解就不能说学过Spring,mybatis

 Java 1.5 开始引入注解。

注解概念:

Java提供了一种源程序中的元素关联任何信息和任何元数据的途径和方法。


Java常见的注解

JDK 自带注解: @Override  @Deprecated @Suppvisewrnings 
@Override 覆盖父类的方法
@Deprecated 方法过时
@SuppressWarnings 告诉编译器对被批注的代码元素内部的某些警告保持静默。

常见的第三方注解
Spring : @Autowired @Service @Repository
Mybatis : @InsertProvider @UpdateProvider @Options

@Autowired 可以在使用实例的时候省去在Spring配置文件中大量的配置

注解的分类

按照运行机制:
  1. 源码注解            注解只在源码中存在,编译成.class文件就不存在了
  2. 编译时注解        在源码中和.class文件中都存在  如JDK自带的三个注解 @Override, @Deprecated, @Suppvisewarnings 
  3. 运行时注解        在运行阶段还起作用,甚至会影响运行逻辑。 @Autowired 把成员变量注入进来
元注解: 给注解的注解

自定义注解

自定义注解语法要求

使用 @interface 关键字来定义注解
成员以 无参 无异常方式声明
可以用default为成员指定一个默认值
成员类型是受限的,合法的类型包含基本类型以及String,Class,Annotation和Enumeration
如果注解只有一个成员,则成员名必须取名为 value(),在使用时可以忽略成员名和赋值号(=)
注解类可以没有成员,没有成员的注解称为标识注解
<span style="font-size:14px;"><span style="font-family:KaiTi_GB2312;">@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
	String desc();
	String author();
	int age() default 18;
}</span></span>



注解的注解(元注解)

上面的代码中的前四行就是元注解:
<span style="font-size:14px;"><span style="font-family:KaiTi_GB2312;">@Target({ElementType.METHOD, ElementType.TYPE})   //注解的作用域,有CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE.
@Retention(RetentionPolicy.RUNTIME)               //注解的生命周期:: SOURCE, CLASS, RUNTIME
@Inherited                                        //标识型注解, 允许继承</span></span>
<span style="font-size:14px;"><span style="font-family:KaiTi_GB2312;">@Documented                                      //生成javadoc 时包含注解的信息 
</span></span>

使用自定义注解

使用自定义注解的语法:
<span style="font-size:14px;"><span style="font-family:KaiTi_GB2312;">@<注解名> (<成员名1>=<成员值1> , <成员名2>=<成员值2> , ...)
@Description (desc="I am eysColor", author="Mooc boy", age=18)
public String eyeColor() {

}</span></span>


解析注解 

概念:通过反射获取类、函数或成员函数上运行时注解信息,从而实现动态控制程序运行的逻辑。 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值