Java基于自定义注解的面向切面的实现

实现步骤

1、写一个切面

@Aspect
@Component
public class LogInfoAspect {

    @Pointcut(value = "@annotation(com.main.entity.annotation.LogInfo)")
    public void LogInfoAspect(){

    }
    // 在这里定义前置切面
    @Before("LogInfoAspect()")
    public void beforeMethod(JoinPoint joinPoint) {

        // 这里执行保存日志的动作
        System.out.println("before .......");
        //得到被切方法的参数
        System.out.println(joinPoint.getArgs()[0]);
    }
}

2、写一个注解

@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.METHOD)
public @interface LogInfo {
    boolean value() default true;
}

3、Controller的引用

@LogInfo
@RequestMapping(value = "/trrtt")
public String trrtt(HttpServletRequest request, Model model) {
  return “success”
}

发表评论