您的位置:首页 > 编程语言

AOP 面向切面编程

2016-09-08 15:37 204 查看
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)配置切面及通知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring框架 aop