1. 首页
  2. Spring教程

Spring教程29篇:Spring 框架的 AOP

Spring 框架的 AOP

Spring 框架的一个关键组件是面向方面的编程(AOP)框架。面向方面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样的常见的很好的方面的例子,如日志记录、审计、声明式事务、安全性和缓存等。

在 OOP 中,关键单元模块度是类,而在 AOP 中单元模块度是方面。依赖注入帮助你对应用程序对象相互解耦和 AOP 可以帮助你从它们所影响的对象中对横切关注点解耦。AOP 是像编程语言的触发物,如 Perl,.NET,Java 或者其他。

Spring AOP 模块提供拦截器来拦截一个应用程序,例如,当执行一个方法时,你可以在方法执行之前或之后添加额外的功能。

AOP 术语

在我们开始使用 AOP 工作之前,让我们熟悉一下 AOP 概念和术语。这些术语并不特定于 Spring,而是与 AOP 有关的。

描述
Aspect 一个模块具有一组提供横切需求的APIs。例如,一个日志模块为了记录日志将被AOP方面调用。应用程序可以拥有任意数量的方面,这取决于需求。
Joinpoint 在你的应用程序中它代表一个点,你可以在插件AOP方面。你也能说,它是在实际的应用程序中,其中一个操作将使用SpringAOP框架。
Advice 这是实际行动之前或之后执行的方法。这是在程序执行期间通过SpringAOP框架实际被调用的代码。
Pointcut 这是一组一个或多个连接点,通知应该被执行。你可以使用表达式或模式指定切入点正如我们将在AOP的例子中看到的。
Introduction 引用允许你添加新方法或属性到现有的类中。
Targetobject 被一个或者多个方面所通知的对象,这个对象永远是一个被代理对象。也称为被通知对象。
Weaving Weaving把方面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时,类加载时和运行时完成。

通知的类型

Spring 方面可以使用下面提到的五种通知工作:

通知 描述
前置通知 在一个方法执行之前,执行通知。
后置通知 在一个方法执行之后,不考虑其结果,执行通知。
返回后通知 在一个方法执行之后,只有在方法成功完成时,才能执行通知。
抛出异常后通知 在一个方法执行之后,只有在方法退出抛出异常时,才能执行通知。
环绕通知 在建议方法调用之前和之后,执行通知。

实现自定义方面

Spring 支持 @AspectJ annotation style 的方法和基于模式的方法来实现自定义方面。这两种方法已经在下面两个子节进行了详细解释。

<table>
<tbody>
<tr>
<th style="width:25%">方法</th>
<th>描述</th>
</tr>
<tr>
<td><a rel="nofollow">XML Schema based</a></td>
<td>方面是使用常规类以及基于配置的 XML 来实现的。</td>
</tr>
<tr>
<td><a rel="nofollow">@AspectJ based</a></td>
<td>@AspectJ 引用一种声明方面的风格作为带有 Java 5 注释的常规 Java 类注释。</td>
</tr>
</tbody>
</table>

作者:陈

来源:https://www.w3cschool.cn/wkspring/izae1h9w.html


看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:Spring教程29篇:Spring 框架的 AOP

    链接:https://www.javajike.com/article/2000.html

« Spring教程30篇:Spring 中基于 AOP 的 XML架构
Spring教程28篇:Spring 中的自定义事件»

相关推荐

QR code