java web学习(进阶篇)六 Spring中的AOP

来源:互联网 发布:hive spark sql 区别 编辑:程序博客网 时间:2024/05/24 06:31

Spring框架的AOP

Spring的一个关键组件是面向切面的编程(AOP)框架。面向切面编程需要把程序逻辑分解成不同的部分(称
为所谓的关注点)。

跨一个应用程序的多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。

在 OOP 中,关键单元模块度是类,而 AOP 中单元模块度是切面。依赖注入帮助你对应用程序对象相互解耦
, AOP 则可以帮助你从它们所影响的对象中对横切关注点耦。

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

AOP 术语:

术语 描述 Aspect 一个模块具有一组提供横切需求的 APIs。如,一个日志模块为记录日志将被 AOP 方面调用。应用程序可拥有任意数量的切面 Join point 在你的应用程序中它代表一个点,在实际的应用程序中,其中一个操作将使用 Spring AOP 框架 Advice 实际行动之前或之后执行的方法,在程序执行期间通过 Spring AOP 框架实际被调用的代码 Pointcut 一组一个或多个连接点,通知应该被执行。可以使用表达式或模式指定切入点 Introduction 引用允许添加新方法或属性到现有的类中 Target object 通知对象,被一个或多个切面所通知的对象,永远是一个被代理对象 Weaving 把切面连接到其它应用程序类型或者对象上,并创建一个被通知的对象

通知的类型

Spring 切面使用下面提到的五种通知:

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

自定义切面

Spring 支持 AOP 的XML架构和基于AOP的@AspectJ来实现自定义切面。

实例

0 0
原创粉丝点击