如何定义一个注解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){}
这里注解的使用,需要在注解的属性上指定相应的内容。

浙公网安备 33010602011771号