Spring AOP教程基本介绍

本文概述

  • AOP概念和术语
  • 参考链接
  1. 什么是AOP?
  2. 在哪里使用AOP?
  3. AOP概念和术语
  4. Spring AOP实施
面向方面的编程(AOP)从某种意义上说是对OOP的一种补充, 因为它也提供了模块化。但是模块化的关键单元是方面而不是课堂。
AOP将程序逻辑分为不同的部分(称为关注点)。它用于通过交叉关注来提高模块化。
横切关注点是可能影响整个应用程序的关注点, 应尽可能集中在代码中的一个位置, 例如事务管理, 身份验证, 日志记录, 安全性等。
为什么要使用AOP?它提供了一种可插入的方式, 可以在实际逻辑之前, 之后或周围动态添加其他关注点。假设一个类中有10个方法, 如下所示:
class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} }

从m开始有5种方法, 从n开始有2种方法, 从p开始有3种方法。
了解方案我必须维护日志并在调用从m开始的方法之后发送通知。
没有AOP的问题我们可以从m开头的方法中调用方法(维护日志并发送通知)。在这种情况下, 我们需要用所有5种方法编写代码。
但是, 如果客户以后说, 我不必发送通知, 则需要更改所有方法。这导致维护问题。
使用AOP解决方案我们不必从方法中调用方法。现在, 我们可以在类的方法中定义其他问题, 例如维护日志, 发送通知等。它的条目在xml文件中给出。
将来, 如果客户说要删除通知程序功能, 我们只需要在xml文件中进行更改。因此, 在AOP中维护很容易。
在哪里使用AOP?【Spring AOP教程基本介绍】AOP主要用于以下情况:
  • 提供声明式企业服务, 例如声明式事务管理。
  • 它允许用户实现自定义方面。
AOP概念和术语AOP的概念和术语如下:
  • 连接点
  • 忠告
  • 切入点
  • 介绍
  • 目标对象
  • 方面
  • 拦截器
  • AOP代理
  • 织造
连接点连接点是程序中的任何点, 例如方法执行, 异常处理, 字段访问等。Spring仅支持方法执行连接点。
忠告建议表示方面在特定的连接点处采取的操作。有不同类型的建议:
  • 咨询之前:它在连接点之前执行。
  • 返回建议后:在联合点正常完成后执行。
  • 引发建议后:如果方法因引发异常而退出, 则执行该建议。
  • 之后(最终)建议:无论连接点退出是正常返回还是异常返回, 它都会在连接点之后执行。
  • 围绕建议:它在连接点之前和之后执行。
切入点它是AOP的一种表达语言, 它与联接点匹配。
介绍这意味着为类型引入其他方法和字段。它允许你将新接口引入任何建议对象。
目标对象这是一个或多个方面所建议的目的。在Spring, 它也被称为代理对象, 因为Spring AOP是使用运行时代理实现的。
方面这是一个包含建议, 连接点等的类。
拦截器这个方面仅包含一个建议。
AOP代理它用于实现由AOP框架创建的方面合同。在Spring框架中它将是JDK动态代理或CGLIB代理。
织造这是将Aspect与其他应用程序类型或对象链接以创建建议对象的过程。编织可以在编译时, 加载时或运行时完成。 Spring AOP在运行时执行编织。
AOP实施
AOP实现由以下方式提供:
  1. AspectJ
  2. SpringAOP
  3. JBoss AOP
SpringAOP
Spring AOP可以通过以下三种方式使用。但是广泛使用的方法是Spring AspectJ注释样式。下面给出了使用Spring AOP的3种方法:
  1. 通过Spring1.2旧样式(基于dtd)(在Spring3中也受支持)
  2. 通过AspectJ注释样式
  3. 通过Spring XML配置样式(基于模式)
参考链接Spring Source AOP
Spring Source AOP API
维基百科

    推荐阅读