Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
来源:互联网 发布:linux posix 编辑:程序博客网 时间:2024/05/01 03:38
AOP(Aspect-Oriented Programming)
1.面向切面编程
2.对传统的oop的补充
3.不是取代oop,经常和oop一起使用
切面:需要实现的交叉功能
连接点:应用程序执行过程中插入切面的地点:此处可是方法调用、异常抛出甚至是要修改的字段
通知:通知切面的实际实现。他通知应用系统新的行为,通知在连接点插入到应用系统中
切入点:定义了通知应该应用在那些连接点。通常通过指定类名和方法名,或匹配类名和方法名式样的正则表达式来指定切入点。
引入:允许为已存在类添加新方法和属性
目标对象:被通知对象。即可使编写的类也可是添加定制行为的第三方类。
代理:将通过应用到目标对象后创建的对象。
织入:将通知应用到目标对象从而创建一个新的代理对象的过程。切面在指定接入点被织入到目标对象中,之如发生在目标对象生命周期的多个点上:
编辑器:切面在目标对象编译时织入(需特殊的编译器)
类装载器:切面在目标对象被载入到JVM时织入(需特殊的类加载器,在类的载入到应用系统之前增强目标对象的字节码)
运行期:切面在应用系统运行时织入(通常,AOP容器将在织入切面时动态生成委托目标对象的代理对象)
前置通知 接口MethodBeforeAdvice
package com.users.advices
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
import com.users.util.Md5Encode;
public class Md5Advice implements MethodBeforeAdvice{
}
Bean.xml配置
后置通知 接口AfterReturningAdvice
package com.users.advices;
import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;
public class ScoreAdvice implements AfterReturningAdvice{
}
环绕通知 接口MethodInterceptor
package com.users.advices;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class TimeAdvice implements MethodInterceptor{
}
环绕通知与前两种通知的区别:
1.该通知能够控制目标方法是否被调用。通过invocation.proceed()方法来调用。
2.该通知可以控制返回值。可以返回一个与proceed()方法返回对象完全不同的对象。
异常通知 接口ThrowsAdvice
public Error
}
该接口没有任何方法,但实现该接口的类必须要有如下形式的方法:
void afterThrowing(Throwable throwable);
void afterThrowing(Method m,Object[] os,Objecttarget,Throwablethrowable);
第一个方法只接受一个参数:需要抛出的异常。
第二个方法接受异常、被调用的方法、参数以及目标对象。
- Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
- Spring -- aop(面向切面编程),前置&后置&环绕&抛异常通知,引入通知,自动代理
- Spring框架——AOP前置、后置、环绕、异常通知
- springaop术语概述及aop中常见通知的实现(前置,后置,环绕,异常)
- 黑马程序员--Spring Aop 面向切面编程,实现前置通知
- Spring-------- 增强(前置,后置,异常,环绕)
- AOP的一些东西(事务的传播特性,前置,后置,环绕,异常 等各种通知)
- Aop的日志操作(前置,后置,环绕,返回,异常通知)
- Spring aop 前置通知、后置通知、返回通知、 异常通知 、后置通知
- Spring关于增强(前置,后置,异常,环绕。。。)
- spring的前置通知,后置通知,环绕通知
- AOP编程之后置通知、环绕通知、异常通知、引入通知
- Spring AOP前置通知和后置通知
- Spring 基于注解,实现 前置通知、后置通知、返回通知、 异常通知 、后置通知
- spring AOP切面编程-环绕
- 前置,后置,环绕,异常增强(示例)
- 9、前置、后置、环绕通知
- Spring笔记4-AOP,前置通知,后置通知,返回通知,异常通知
- python学习1 详细记录python的range()函数用法
- [Codevs] 3044 矩形面积求并(离散化)
- 算法
- ubuntu校园网登陆客户端 mentohust下载安装
- 线段树练习题一
- Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
- Java注解原理解析
- 动画演示Raft
- 小马哥---高仿苹果7p 9900-875AQ0-A-6571新版刷机拆机图示与识别图
- opencv简单形状绘制
- 查字典
- 图像处理中的形态学(一)
- 关于parent()、parents()和closest()的区别
- 线段树联系2