组合注解用处很多,只是我们有时没注意而已,比如RestController,PostMapping,GetMapping等。他们的意义在于将多个注解组合在一起,写一个注解就够了。
本节目的在于,组合Cacheable注解,将它的cacheNames写成默认的default(想想第一节最后的讨论)。
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Cacheable(cacheNames = "default")
public @interface Interest {
String key();
String unless();
}
其实以上代码就完成了注解组合,你在一个方法上夹Interest注解就相当于加了Cacheable注解。
以上代码虽然完成了组合,但是你会发现你用spel写key或者unless时。没有提示,也没有高光。
@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();
}
那么现在快去试试吧。你还可以装逼的加上注释。
/**
* @see Cacheable#key
* @return
*/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。