前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义注解3-组合注解

自定义注解3-组合注解

原创
作者头像
并发笔记
修改2020-10-27 10:29:02
1.3K1
修改2020-10-27 10:29:02
举报
文章被收录于专栏:并发笔记并发笔记

    组合注解用处很多,只是我们有时没注意而已,比如RestController,PostMapping,GetMapping等。他们的意义在于将多个注解组合在一起,写一个注解就够了。

定义组合注解

    本节目的在于,组合Cacheable注解,将它的cacheNames写成默认的default(想想第一节最后的讨论)。

代码语言:txt
复制
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Cacheable(cacheNames = "default")
public @interface Interest {
    
    String key();

    String unless();
}

    其实以上代码就完成了注解组合,你在一个方法上夹Interest注解就相当于加了Cacheable注解。

小技巧

    以上代码虽然完成了组合,但是你会发现你用spel写key或者unless时。没有提示,也没有高光。

代码语言:txt
复制
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Cacheable(cacheNames = "default")
public @interface Interest {

    @AliasFor(annotation = Cacheable.class)
    String key();

    @AliasFor(annotation = Cacheable.class)
    String unless();
}

    那么现在快去试试吧。你还可以装逼的加上注释。

代码语言:txt
复制
/**
 * @see Cacheable#key
 * @return
 */

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义组合注解
  • 小技巧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档