首页 >Java >java教程 >java如何实现自定义注解

java如何实现自定义注解

coldplay.xixi
coldplay.xixi原创
2020-08-20 11:53:495464浏览

java实现自定义注解的方法:首先新建一个java文件,并自定义一个注解;然后使用元注解定义各项;最后定义该注解的业务逻辑。

java如何实现自定义注解

java实现自定义注解的方法:

一、自定义一个注解(MyValidate),使用元注解定义各项用途

409f1d1d8bbf46a9292e8b6f7c35373.png

二、定义该注解的业务逻辑,这里只实现了注解的一个属性:isNotNull()

e991856d8a364d0fe08a7cf51175929.png

然后就就可以愉快的使用了

cd6937ac2d5101b1ccfb507ec9bd19b.png

实际项目中通过拦截器或者切面来实现:

1、定义一个interface,命名为BaseCheck,BaseCheck里面有一个抽象的check方法,check方法返回值是boolean。

2、定义校验的注解,比如:@NotNull、@Length。

3、根据上面的注解,分别定义对应的校验类,比如:NotNullCheck、LengthCheck。

4、NotNullCheck、LengthCheck都需要实现BaseCheck的check方法,你要在check方法里面写校验流程。

5、定义一个容器,在工程启动的时候,把NotNullCheck和LengthCheck的对象塞到里面,

如果你使用spring,直接在NotNullCheck和LengthCheck上面加个注解@Component,也能达到同样的效果。

6、定义一个拦截器或者切面。

7、在这个拦截器或者切面里,拿到请求的参数,也就是那个user对象。

8、通过反射,获取到这个user对象所对应的类,类的名字肯定就是User了。

9、遍历User里面的所有Field,检查每一个Field是否含有注解。

10、遍历Field上的所有注解。

11、假设找到一个注解@NotNull,就去找一下对应的校验类,

BaseCheck baseCheck = 容器.get("NotNullCheck")

或者BaseCheck baseCheck = (BaseCheck) SpringUtl.getBean("NotNullCheck")

12、如果找到,也就是baseCheck不为空,则通过反射获取这个Field的实际值,将这个值作为参数,调用baseCheck.check方法

13、baseCheck.check如果返回false则报错,如果返回true则继续,直到遍历完所有Field、所有注解

相关学习推荐:java基础教程

以上是java如何实现自定义注解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn