AOP 面向切面编程

AOP笔记


前置通知:在目标方法执行前执行
后置通知:在目标方法执行后执行(无论该方法是否产生了异常);后置通知还不能访问执行方法返回的结果。
返回通知:以下代码中的result就是返回值
@AfterReturning(value="execution(public * com.atguigu.spring.aop.*.*(..))", returning="result")
public void afterRunnig(JoinPoint jp, Object result) {
System.out.println("The result equals " + result);
}
异常通知:以下代码中的ex就是异常对象
@AfterThrowing(value="execution(public * com.atguigu.spring.aop.*.*(..))", throwing="ex")
public void afterThrowing(JoinPoint jp, Exception ex) {
System.out.println("The mothod occurs by exception : " + ex);
}
环绕通知(功能最强大,集合了前四种通知于一体):
1.环绕通知@Around修饰的方法需要具备一个ProceedingJoinPoint类型的参数
2.环绕通知类似于动态代理的全过程
3.环绕通知修饰的方法必须具有返回值,返回值即为目标方法的返回值




AOP切面的优先级可以通过@Order(1)来指定,小括号中的数字越小优先级越高


使用@Pointcut来声明切入点表达式
@Pointcut("execution(public * com.atguigu.spring.aop.*.*(..))")
public void declareJoinPointExpression() {} //一般地,方法体内不放置代码了
// 使用@Pointcut
@Before(value="declareJoinPointExpression()")




--- 基于xml文件配置AOP步骤 ---
1、配置目标类的bean
2、配置切面的bean
3、配置AOP
(1)配置切点表达式
(2)配置切面及通知

你可能感兴趣的:(AOP 面向切面编程)