程序员社区

【深入Spring】AOP概念

一.AOP介绍

1.官方介绍:面向切面编程(AOP,Aspect Oriented Programming),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2.我的理解:将交叉业务逻辑封装成切面,利用AOP容器的功能将切面织入到主业务逻辑中.所谓的交叉业务逻辑指的就是通用的与主业务逻辑无直接关系的代码,如安全检查,事务,日志等。若不使用AOP会使得主业务逻辑代码和交叉业务逻辑代码混合在一起,使主业务逻辑变得混杂不清.

二.AOP基本术语介绍

1.连接点(Joinpoint)

程序执行的某个特定位置,如类开始初始化前,类初始化后,类某个方法调用前,调用后,方法抛出异常之后。一个类或一段代码拥有一些具有边界性质的特定点,这些代码中的特定点就成为连接点。(指切面可以织入的位置。)
Spring仅支持方法的连接点,即只能在方法调用之前,调用之后,方法抛出异常,以及方法调用前后这些连接点织入增强;

2.切点(Pointcut)

切入点指切面具体织入的位置。

3.切面(Aspect)

切面泛指交叉业务逻辑。事务处理、日志处理就可以理解为切面。常用的切面有通知与顾问。实际就是对主业务逻辑的一种增强。

4.通知(Advice)

通知是切面的一种实现,可以完成简单织入功能(织入功能就是在这里完成的)。通知定义了增强代码切入到目标代码的时间点,是目标方法执行之前执行,还是之后执行等。通知类型不同,切入时间不同。

5. 顾问(Advisor)

顾问是切面的另一种实现,能够将通知以更为复杂的方式织入到目标对象中,是将通知包装为更复杂切面的装配器。 不仅指定了切入时间点,还可以指定具体的切入点。

6.织入(Weaving)

把切面应用到目标对象来创建新的代理对象的过程。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【深入Spring】AOP概念

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区