AOP进行通知(切面)的步骤
Posted Zong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AOP进行通知(切面)的步骤相关的知识,希望对你有一定的参考价值。
1、基本配置
1)在Spring的配置文件或配置类中,开启注解扫描
2)使用注解创建被增强类和增强类对象
3)在增强类上添加注解@Aspect
4)在Spring配置文件中开启生成代理对象
4.1)xml配置文件方式:
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
配置类方法:
4.2)
@Configuration
@ComponentScan(backPackage={"com.zong.spring"})
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class ConfigAop{}
2、配置不同类型的通知
增强类(代理类)
@Component
@Aspect
public class UserProxy{
//前置通知
@Before(value="execution(* com.zong.spring.User.add(..))")
public void before(){
System.out.println("before...");
}
//后置通知
@AfterReturning(value="execution(* com.zong.spring.User.add(..))")
public void afterReturning(){
System.out.println("afterReturning...");
}
//最终通知
@After(value="execution(* com.zong.spring.User.add(..))")
public void after(){
System.out.println("after...");
}
//异常通知
@AfterThrowing(value="execution(* com.zong.spring.User.add(..))")
public void afterThrowing(){
System.out.println("afterThrowing...");
}
//环绕通知
@Around(value="execution(* com.zong.spring.User.add(..))")
public void around(ProceedingJoinPoint proceedingJoinPoint){
System.out.println("环绕之前...");
//执行被增强的方法
proceedingJoinPoint.proceed();
System.out.println("环绕之后...");
}
}
执行结果
环绕之前...
before..
add..
环绕之后..
after...
afterReturning...
异常执行结果
环绕之前...
Before...
after...
afterThrowing..
.
以上是关于AOP进行通知(切面)的步骤的主要内容,如果未能解决你的问题,请参考以下文章