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进行通知(切面)的步骤的主要内容,如果未能解决你的问题,请参考以下文章

AOP面向切面编程

Spring注解驱动开发-AOPTx和Servlet3.0

spring实现aop具体步骤

spring-AOP(面向切面编程)

SSMSpring6(十.面向切面编程AOP)

AOP面向切面编程