AOP(面向切面编程)学习笔记

AOP(面向切面编程)学习笔记

通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

AOP相关术语

Joinpoint(连接点): 被拦截到的方法,即指方法的调用

Pointcut(切入点): 我们对哪些连接点进行拦截的定义,也就是被增强的连接点,切入点一定是连接点,连接点不一定是切入点

Advice(通知/增强): 对切入点进行的增强操作

包括前置通知,后置通知,异常通知,最终通知,环绕通知

Weaving(织入): 是指把增强应用到目标对象来创建新的代理对象的过程。

Aspect(切面): 是切入点和通知的结合

Proxy(代理):将通知应用到目标对象之后,被动态创建的对象

Target Object(目标对象):是指所有被通知的对象,也被称为被增强对象
在这里插入图片描述此接口所有方法都为连接点

//环绕通知

public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{if("test".equals(method.getName())){return method.invoke(accountService,args);}

​							Object rtValue = null;try{//1.开启事务							   	//前置通知

​								txManager.beginTransaction();//2.执行操作

​								rtValue = method.invoke(accountService,args);//3.提交事务

​								txManager.commit();							//后置通知//4.返回结果return rtValue;} catch(Exception e){//5.回滚操作

​								txManager.rollback();throw new RuntimeException(e);				//异常通知}finally{											//最终通知//6.释放连接

​								txManager.release();}}}

}


在这里插入图片描述此处的accountService就是目标对象


本学习笔记暂且到这里,其他具体实例可自行去查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值