Spring Framework的一个关键组件是面向方面编程(AOP)框架.面向方面编程需要将程序逻辑分解为称为所谓关注点的不同部分.跨越应用程序多个点的函数称为横切关注点,这些跨领域关注点在概念上与应用程序的业务逻辑分开.有各种常见的好例子,例如日志记录,审计,声明式事务,安全性,缓存等.
OOP中模块化的关键单元是类,而在AOP中的单位是模块化是方面.依赖注入可以帮助您将应用程序对象相互分离,AOP可以帮助您将交叉问题与它们所影响的对象分离. AOP就像Perl,.NET,Java等编程语言中的触发器一样.
Spring AOP模块提供拦截器来拦截应用程序.例如,当执行方法时,您可以在方法执行之前或之后添加额外的功能.
AOP术语
在我们开始使用之前AOP,让我们熟悉AOP的概念和术语.这些术语并非特定于Spring,而是与AOP相关.
Sr.No | 条款&描述 |
---|---|
1 | 方面 这是一个模块,其中包含一组提供交叉要求的API.例如,日志记录模块将被称为AOP方面以进行日志记录.根据要求,应用程序可以包含任意数量的方面. |
2 | 加入点 这代表您申请中的一个点可以插入AOP方面.您还可以说,它是应用程序中使用Spring AOP框架执行操作的实际位置. |
3 | 建议 这是在方法执行之前或之后要采取的实际操作.这是Spring AOP框架在程序执行期间调用的一段实际代码. |
4 | 切入点 这是一组一个或多个加入应该执行建议的点.您可以使用表达式或模式指定切入点,我们将在AOP示例中看到. |
5 | 简介 简介允许您添加现有类的新方法或属性. |
6 | 目标对象 由一个或多个方面提供建议的对象.此对象将始终是代理对象,也称为建议对象. |
7 | 编织 编织是连接的过程与其他应用程序类型或对象一起创建建议对象的方面.这可以在编译时,加载时或运行时完成. |
建议类型
弹簧方面可以使用以下提及的五种建议:<
Sr.No | 建议&描述 |
---|---|
1 | 之前 在方法执行之前运行建议. |
2 | after 在方法执行后运行建议,无论结果如何. |
3 | after-returning 运行建议后方法执行仅在方法成功完成时. |
4 | after-throwing 仅在方法退出时运行方法后才运行建议抛出异常. |
5 | around 在调用建议方法之前和之后运行建议. |
自定义方面实施
Spring支持 @AspectJ注释样式方法和基于模式的方法来实现自定义方面.以下各节已详细解释了这两种方法.
Sr.No | 方法&说明 |
---|---|
1 | 基于XML的模式 使用常规类和基于XML的配置实现方面. |
2 | @ AspectJ基础 @AspectJ指的是将方面声明为使用Java 5注释注释的常规Java类的样式. |