专业的JAVA编程教程与资源

网站首页 > java教程 正文

两步实现Java自定义注解(两步实现java自定义注解)

temp10 2024-09-27 23:01:59 java教程 12 ℃ 0 评论

什么是注解?

注解就是为容器提供元数据,例如@Controller 注解则是标记了该Bean需要交给Spring容器进行管理。

两步实现Java自定义注解(两步实现java自定义注解)

那么我们怎么去实现自个的注解,也就是自定义注解呢?

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

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

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

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

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、所有注解

觉得喜欢的朋友欢迎关注点赞转发评论哦,您的支持将会是小编的动力之源!

近期导读:

synchronized与Lock的区别从此不会忘记

synchronized用法总结

OSI网络七层模型很难记忆吗?不存在的

两步实现Java自定义注解

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表