Java自定义注解实现和企业级应用

/**

* 操作模块

* @return

*/

public String module() default “” ;

/**

* 操作内容,如:添加用户

* @return

*/

public String operationDesc() default “” ;

}

大家可能看到头顶上的这些注解可能还是一脸懵逼,不知道各自有什么作用,下面和大家仔细说明一下这些注解的含义。

java.lang.annotation提供了四种元注解,专门注解其他的注解(在自定义注解的时候,需要使用到元注解):

@Documented –注解是否将包含在JavaDoc中

@Retention –什么时候使用该注解

@Target –注解用于什么地方

@Inherited – 是否允许子类继承该注解

1.)@Retention– 定义该注解的生命周期

● RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。

● RetentionPolicy.CLASS : 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式

● RetentionPolicy.RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。

2.)Target – 表示该注解用于什么地方。默认值为任何元素,表示该注解用于什么地方。可用的ElementType参数包括

● ElementType.CONSTRUCTOR:用于描述构造器

● ElementType.FIELD:成员变量、对象、属性(包括enum实例)

● ElementType.LOCAL_VARIABLE:用于描述局部变量

● ElementType.METHOD:用于描述方法

● ElementType.PACKAGE:用于描述包

● ElementType.PARAMETER:用于描述参数

● ElementType.TYPE:用于描述类、接口(包括注解类型) 或enum声明

3.)@Documented–一个简单的Annotations标记注解,表示是否将注解信息添加在java文档中。

4.)@Inherited – 定义该注释和子类的关系

@Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

含义说明完了,接在来的问题就是我们要怎么把他用在项目中呢,具体的实现要怎么写。大家不用着急,容我徐徐道来。

在我们项目中这个自定义注解只用来做一件事情,就是做接口日志收集,将收集到的日志打印到ELK(日志系统)中去。所以我们需要在每一个接口上面都填加这个注解,然后在利用切面类来收集这些接口的日志,将日志信息全部打印到ELK(日志系统)中去。下面我们来看具体的实现:

![](https://note.youdao.com/yws/api/group/76450073/noteresource/74A50ED050C24D7D93326155A96DD1BC/vers

必看视频!获取2024年最新Java开发全套学习资料 备注Java

ion/278?method=get-resource&shareToken=20E71B2BA5524126A0297A8B086DDF9C&entryId=202417575)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

外链图片转存中…(img-I0dgIera-1716465856952)]

[外链图片转存中…(img-4G5meDn0-1716465856953)]

2021企业Java面试题精选

[外链图片转存中…(img-yaNHH05R-1716465856953)]

[外链图片转存中…(img-XjCflJUp-1716465856953)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值