java自定义注解是什么,难吗?
在没有接触过自定义注解之前,我会认为,哇,注解好厉害,就@加上一段字符就可以实现各种功能,告诉你们,spring的@Controller @Service @Commont 其实只是名字不同,功能完全一样,不信你试试,哈哈。或者扒一下源码。说回到正题,自定义注解是什么,难吗。自定义注解基本分为,注释到方法上的,注释到实体私有属性的,注解到形参的,大多经常使用的就这样了吧。
先说注解到方法上的,能干嘛,怎么干,比如你自定义了一个注解,想要让他实现对系统中某些接口签名校验绕过,也就是加了你这个注解,该方法不会进行签名校验。先说下签名校验一般会怎么做,一般你们是不是定义一个拦截器,拦截所有请求,然后取header的签名值和自己把请求的参数拿出来的值算完之后进行比较,相同校验就通过,不同就不通过,这时候,老板说某个接口不需要签名校验,你可以拿到方法名做白名单过滤,但是越来越多的方法需要白名单呢,这时候,加个注解吧,放在方法上,拦截器在校验时,判断方法上有没有不需签名校验的注解,如果有,直接就过了,没有再去校验就OK了。
这是一种方法,在拦截器层面使用注解,你也可以在aop中使用,去切那些注释了某些注解的方法,再拿到注解上的一些属性做操作。比如想记录日志的自定义Log注解。
未完待续。。。先写代码去了