对于自定义注解的总结

一:基本语法:通过@interface关键字来定义一个注解

//定义一个注解
    public @interface MYAnnotation{
}

@interface与class,enum一样,都是java的关键字,只是@interface用作定义注解

二:定义注解的参数集

        

//定义注解的参数
public @interface Myannotation{
    String value();//使用该注解要传入该参数,不传入就会报错
    String path() default "/ ";使用该注解要传入该参数,不传入不会报错,会使用默认值“/”
}

//!!定义参数时的括号是一种具体语法,不是方法来的,里面不可以传参数!

三:修饰注解的注解(元注解)

        

//四个元注解声明自定义注解的作用范围及时间
@Documented //生成javaAPI文档时也生效
@Target() //声明自定义注解的标注范围,可以是类,方法,变量等,具体参数可以查看ElementType枚举类的枚举项
@Retention() //声明自定义注解作用的范围,可以是运行时,编译时等,具体参考RetentionPolicy枚举类的枚举项
@inherit //声明继承某个标注了该自定义注解的类自动继承该注解

四:解析/使用注解(注解的底层是反射)

        1.Spring可以通过AspectJ(aop)解析注解(反射),使用通知来织入注解信息

        通过在Spring切面的通知上使用@annotation(xxx.class)注解,声明所有使用了某个注解的方法都将织入该切面

        也可以通过handlerMethod.getMethod(注解.class),可以拿到对应的注解(有则返回该注解无则返回空)(handlerMethod是被SpringMVC封装过的method)(适用于在拦截器中使用)

        2.手动解析

                通过反射,获取到某个方法或类上是否有该注解,然后再自行处理

               

          

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值