构建自己的注解

一、学习参考:https://www.bilibili.com/video/BV1Py4y1Y77P/?spm_id_from=333.337.search-card.all.click&vd_source=af888e4b9fbc70c4d5e7a445796ae8a1

1、注解有已经被定义好的注解和自己定义的注解,已经被定义好的注解有:

@Override:告诉编译器这个方法是覆盖父类的方法

@Controller("/test"):表示某个类是一个控制器,告诉Spring框架该类是一个控制器

@WebServlet("/test"):表示某个类是一个Servlet,Web容器就会识别这个注解,在运行的时候调用它

..............类似这样的注解还有很多

2、注解与注释的区别:注释是写在程序代码中面向开发人员,只有编译代码的人可以看到,对程序的实际编译和运行不会产生什么影响;

而注解不仅开发人员可以看到,对程序的实际编译和运行也会产生影响。

3、@Target和@Retention是面向注解的注解:

@Target指定注解针对的地方,规定了相应注解的作用范围,具体书写规范是类似于@Target(ElementType.METHOD),具体作用范围的区分在括号中的后半部分,.METHOD表示定义的注解只能作用于方法,在类、接口、参数、构造器等等地方不能使用;

@Retention指定注解的保留域,规定了相应注解的存活时间、保留区域、运行时间等,具体书写规范是类似于@Retention(RetentionPolicy.RUNTIME),.RUNTIME表示只在运行时有效,.CLASS表示注解信息保留到对应的类中。

4、自定义注解的书写规范是public @interface [主类/文件名]{    },其中注解不具备逻辑处理功能,仅仅只是运行时的注释,但是会影响程序的编写、运行等,因此注解的类中经常看不到定义的方法。

二、invoke方法学习参考:https://blog.csdn.net/qq_34562093/article/details/84889499和https://www.cnblogs.com/fpqi/p/9638762.html

通过反射的机制,可以使用invoke()函数来调用类的函数。括号中的第一个变量是一个对象,调用该对象的方法实例,如果该方法是静态方法,可以用null或者类来代替;第二个参数是变长的,是调用该方法的参数。method.invoke(obj);

posted @ 2023-09-21 15:51  PeeledPotato  阅读(23)  评论(0)    收藏  举报