1、加入aop依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2、创建一个接口对象
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Action {
String name();
}
3、定义切面类
@Aspect
@Component
public class LogAspect {
@Pointcut("@annotation(com.swpu.todolist.util.Action)")
public void annotationPointCut() {};
@After("annotationPointCut()")
public void after(JoinPoint joinPoint) {
//获取参数名
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
String[] strings = signature.getParameterNames();
//获取参数值
Object[] objects= joinPoint.getArgs();
//获取切入的方法名
Method method = signature.getMethod();
//获取切入的类
Class aClass = joinPoint.getTarget().getClass();
System.out.println("Args: "+Arrays.toString(objects));
System.out.println("parameter: "+ Arrays.toString(strings));
System.out.println("ClassName: " +aClass.getName());
System.out.println("method: "+method.getName());
}
}
4、添加到方法上
@Action(name = "删除已经完成")
@RequestMapping(value = "/deleteTableDone",method = RequestMethod.POST)
@ResponseBody
public String deleteTableDone(@RequestBody TableDone tabledone ){
listService.deleteTableDone(tabledone);
return "succ";
}
5、运行结果
Args: [TableDone(id=46, thing=null, createDate=null, doneDate=null, user_id=0)]
parameter: [tabledone]
ClassName: com.swpu.todolist.controller.ListController
method: deleteTableDone