spring学习

本文详细解析了Spring框架中的AOP(面向切面编程)概念,包括切面、连接点、切入点、通知、目标对象、代理及织入等核心术语,并阐述了AOP如何解决OOP在日志操作和事务管理等方面的局限性。

spring AOP

AOP(Aspect-Oriented Programming),即面向切面编程,由于OOP(面向对象编程)在日志操作,事务管理等功能方面的操作不仅增加了开发者的工作量,而且造成升级维护的困难,尽管OOP能够采用继承的方式对代码进行重用,但仍然有同样的代码分散在各个方法中,由此AOP思想应运而生,AOP采用横向抽取机制,将各个方法中重复的代码抽取出来,在将这些代码运用到需要的方法中,这种机制是OOP无法做到的,因为OOP的继承属于纵向重用。但这并没用意味着AOP代替了OOP,而是对OOP的延伸和补充。

下图为将日志记录,性能统计的切面方法横向插入到业务类1和业务类2中

 

 

在spring AOP中存在几个术语,这些术语解释了AOP中的行为。

切面(Aspect): 切面( Aspect )是指封装横切到系统功能(例如事务处理)的类。

连接点(Joinpoint )是指程序运行中的 一些时间点,例如方法的调用或异常的抛出。

切入点(Pointcut)是指需要处理的连接点。在 Spring AOP 中,所有的方法执行都是连接点,而切入点是一个描述信息,它修饰的是连接点,通过切入点确定哪些连接点需要 被处理。

通知( Advice )是由切面添加到特定的连接点(满足切入点规则)的 一段代码,即在定义好的切入点处所要执行的程序代码,可以将其理解为切面开启后切面的方法,因此通知是切面的具体实现。

目标对象( Target Object )是指所有被通知的对象。如果AOP 框架使用运行时代理的 方式(动态的 AOP )来实现切面,那么通知对象总是一个代理对象

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

织入( Weaving )是将切面代码插入到目标对象上,从而生成代理对象的过程。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值