Spring Boot结合自定义注解实现日志记录
有业务场景需要记录调用方法的操作日志,打算使用注解加切面的方式实现,此处先做个测试Demo
1.定义操作日志注解@Log
@Retention 表示这是一个运行时注解,即运行起来之后,才获取注解中的相关信息,而不像基本注解@Override 那种不用运行,在编译时eclipse就可以进行相关工作的编译时注解。
@Target指定注解的类型 可以是方法、属性等,取值(ElementType)有:
- CONSTRUCTOR:用于描述构造器
- FIELD:用于描述符
- LOCAL_VARIABLE:用于描述局部变量
- METHOD:用于描述方法
- PACKAGE:用于描述包
- PARAMETER: 用于描述参数
- TYPE: 用于描述类、接口(包括注解类型)或者enum声明
package com.huida.investment; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Date; /** * 自定义操作日志注解 * @Author zhanghailang * @Date 2020/10/16 */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Log { //操作员 String operator() default "其他"; //保全类型 String edortype() default "其他"; // Date edorAppDate() default new Date("111111") ; //保全阶段 String state(); }
2.定义切