图解Spring AOP

  1. 引入

      AOP(Aspect Oriented Programming),是面向切面编程的技术。AOP基于IoC基础,是对OOP的有益补充。

 AOP之所以能得到广泛认可,主要是因为它将应用系统拆分分了2个部分:核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的切面Crosscutting enterprise concerns。例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(Transaction Management)、权限管理(Privilege Management)、日志管理(Logging)和调试管理(Debugging)等。使用AOP技术,可以让开发人员只专注核心业务,而通用逻辑则使用AOP技术进行横向切入,由专人去处理这些通用逻辑,会使得任务简单明了,提高开发和调试的效率。

图解Spring AOP_第1张图片

  1.  基本概念

要想了解AOP,首先得了解几个重要的基本概念:

  • 切面(Aspect:一个关注点的模块化,这个关注点实现可能另外横切多个对象。比如说事务管理就是J2EE应用中一个很好的横切关注点例子。切面用SpringAdvisor或拦截器实现。
  • 连接点(Joinpoint:程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
  • 通知(Advice:在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”“before”“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个围绕连接点的拦截器链。
  • 切入点(Pointcut:指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。
  • 目标对象(Target Object:包含连接点的对象,也被称作被通知或被代理对象。
  • AOP代理(AOP ProxyAOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
  • 编织(Weaving:组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。
  • 图解Spring AOP_第2张图片

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

你可能感兴趣的:(Java,java,Linux,尚硅谷)