java注解通俗易懂系列教程一之定义和使用

1.java注解定义

定义:Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。

简单点来说:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。

通俗来讲Java 注解(Annotation)1.可以做的事情:根据属性字段保存相应的内容,可以放到类,方法等地方的标识。2.可以得到的信息:属性字段保存的内容,放置的地方(类,方法等)。类比几个例子:注解就是指示牌,路标,灯塔,可以提供一些信息但是本身又没主动做什么操作

疑问:讲到这个地方用过但是不理解原理的同学就会有疑问:按这个解释注解就是一个保存信息的标注,只展示了一些信息,什么都没做啊。那跟平时使用的注解比如@SpringBootApplication,@MapperScan,@RestController等理解不太一样,因为这些注解肯定不只是展示信息了,也做了一些处理逻辑,这个逻辑是在哪里写的?

所以写自定义注解需要提前规定和知道注解的使用位置,这样才能正确生效。在规定的位置内,判断如果使用了这个自定义注解,利用注解属性提供的信息,通过AOP和反射对使用注解的位置进行逻辑处理。(不仅仅是使用aop,只要可以在注解执行之前捕捉到进行处理,都可以)

2.注解怎么使用

(1)比如:使用@RequestMapping展示

(2)查看@RequestMapping的注解源码,查看注解可以用在什么地方@Target,注解存在的生命周期:@Retention

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping  是另外一个自定义注解和这个组合了,在此不做讨论,有兴趣看后面教程

(3)最上面四个注解是用来写这个注解的使用规则,使用位置@Target({ElementType.METHOD, ElementType.TYPE}为:METHOD 在【方法】上使用,TYPE 在【类、接口、注解】上使用 注解具体详解如下:

扫描二维码关注公众号,回复: 12265960 查看本文章

(4)其中target在java1.8的时候还引入两个属性上图没有

  • TYPE_PARAMETER 在【类型参数】上使用 Java 1.8 引入
  • TYPE_USE 在【任何声明类型的地方】上使用 Java 1.8 引入)

(5)然后查看注解定义的属性怎么使用,比如这里的name属性,这个需要查看调用这个注解前后都执行了什么逻辑。

(6)具体一个注解怎么使用都执行了什么逻辑,两方面:1.文档讲解(这个比较容易小白也会)2.通过查看源码哪里引用这个注解了,实现的什么业务逻辑来分析(这个对于一般刚入门的比较难),我使用的eclipse快捷键在注解上ctrl+G或者注解上右键Find Usages来查看

总结注解使用都是直接@注解名在具体的方法,类等上面,特别简单。使用之前查看@target定义的使用位置,通过源码和文档查看注解的使用逻辑。

猜你喜欢

转载自blog.csdn.net/Mint6/article/details/103831476