代码格式
@Aspect//作用是把当前类标识为一个切面供容器读取
@Component
public class MethodAspect {
// private final Logger logger = LoggerFactory.getLogger(this.getClass());
//
/**
* execution函数用于匹配方法执行的连接点,语法为:
* execution(方法修饰符(可选) 返回类型 方法名 参数 异常模式(可选))
*/
@Pointcut("execution(public * com.cic.quality.onebeyond.service.table.TaskExecutionSerive.doTaskOne(..))")
public void webLog() {
}
@Before("webLog()")//标识一个前置增强方法,相当于BeforeAdvice的功能
public void doBefore(JoinPoint joinPoint) throws Throwable {
System.out.println("前置切面");
}
@AfterReturning(returning = "ret", pointcut = "webLog()")//后置增强,相当于AfterReturningAdvice,方法正常退出时执行
public void doAfterReturning(Object ret) throws Throwable {
System.out.println("后置切面");
}
}
POM依赖
<!--aop-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--aop切面依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.8</version>
</dependency>
<!--aop切面依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.8</version>
</dependency>