打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
和喜欢Spring的软件工程师谈谈Spring框架的AOP


AOP是Spring框架面向切面的编程思想,AOP采用一种称为“横切”的技术,将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,在合适的时机将这些切面横向切入到业务流程指定的位置中。

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

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

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

AOP 术语

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

一、Aspect,一个模块具有一组提供横切需求的 APIs。例如,一个日志模块为了记录日志将被 AOP 方面调用。应用程序可以拥有任意数量的方面,这取决于需求。

二、Join point,在你的应用程序中它代表一个点,你可以在插件 AOP 方面。你也能说,它是在实际的应用程序中,其中一个操作将使用 Spring AOP 框架。

三、Advice,这是实际行动之前或之后执行的方法。这是程序执行期间通过 Spring AOP 框架实际被调用的代码。

四、Pointcut,这是一组一个或多个连接点,通知应该被执行。你可以使用表达式或模式指定切入点正如我们将在 AOP 的例子中看到的。

五、Introduction,引用允许你添加新方法或属性到现有的类中。

六、Target object,被一个或者多个方面所通知的对象,这个对象永远是一个被代理对象。也称为被通知对象。

七、Weaving,Weaving 把方面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时,类加载时和运行时完成。

通知的类型

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

一、前置通知,在一个方法执行之前,执行通知。

二、后置通知,在一个方法执行之后,不考虑其结果,执行通知。

三、返回后通知,在一个方法执行之后,只有在方法成功完成时,才能执行通知。

四、抛出异常后通知,在一个方法执行之后,只有在方法退出抛出异常时,才能执行通知。

五、环绕通知,在建议方法调用之前和之后,执行通知。

实现自定义方面

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

XML Schema based,方面是使用常规类以及基于配置的 XML 来实现的。

@AspectJ based ,@AspectJ 引用一种声明方面的风格作为带有 Java 5 注释的常规 Java 类注释。

AOP的主要思想是让开发者把诸多业务流程中的通用功能抽取出来,单独编写功能代码,形成独立的模块,这些模块也被称为切面。在业务流程执行过程中,Spring框架会根据业务流程要求,自动把切面切入到流程的合适位置。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
spring面试题
spring有关的一些知识点
【第一章】 Spring概述 ——跟我学Spring3
基于SSH2框架Struts2拦截器的登录验证实现
简单理解AOP(面向切面编程)
【框架】124:spring框架之切面编程步骤说明
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服