如何定义一个注解Annotation,以定义操作日志为例。

/**
 * 定义操作日志注解
 */
@Target(ElementType.METHOD)#它表明注解使用的目标范围是方法METHOD,即该注解使用在一个方法上
@Retention(RetentionPolicy.RUNTIME)#注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
@Documented
public @interface OperateLog {

    /**
     * 顶级+一级菜单
     * @return
     */
    String module();

    /**
     * 方法
     * @return
     */
    String methodContent();

    /**
     * (MES,QMS)
     * @return
     */
    String bigModule();
}

1.   RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;

 

使用该注解:

    @OperateLog(bigModule = "MES",module = "设备-保养-保养管理",methodContent = "每天通过定时任务监测并生成“保养管理”数据") 
    @ApiOperation(value = "每天通过定时任务监测并生成“保养管理”数据", notes = "每天通过定时任务监测并生成“保养管理”数据接口")
    @PostMapping("generate")
    public BaseRespResult generate(TimedTaskParamsVo timedTaskParamsVo){}

  这里注解的使用,需要在注解的属性上指定相应的内容。

 

posted @ 2022-12-30 17:25  dangerous_11  阅读(32)  评论(0)    收藏  举报