网上看到了很多基于Aop的自定义注解,但是感觉说法过于复杂,导致新手很难直接的理解。其实一个自定义注解的实现只需要3个类,一个声明注解,一个注解的具体实现,一个使用注解的实例即可。
工程如下图所示。
首先需要引入Maven依赖
其次,定义一个自己使用的注解。
然后注解的具体工作内容
package com.mu.aopdemo;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
/**
* 功能:注解类的实现
* authorize: lijianwen
* Date: 2018/6/5 14:20
*/
@Component
@Aspect
public class AspectImpl {
@Pointcut("@annotation(com.mu.aopdemo.Mu)")
private void cut(){
System.out.println("3");
}
// 开始环绕
@Around("cut()")
public void around(ProceedingJoinPoint joinPoint)throws Throwable{
System.out.println("1");
try{
joinPoint.proceed();
}catch (Exception e){
e.printStackTrace();
}
System.out.println("4");
}
@Before("cut()")
public void before(){
System.out.println("2");
}
@After("cut()")
public void after(){
System.out.println("5");
}
}
最后,在实际应用中使用自定义注解。
然后,启动项目。访问http://localhost:8080/test/do
可以看到控制台依次显示
分别是之前输出的数字执行顺序。
以上是一个最简单的自定义注解Demo。
网友评论