Spring 框架中的AOP

本文介绍了Spring框架中的面向切面编程(AOP)概念及其关键组件。文章详细解释了AOP的基本术语,包括切面、连接点、通知等,并讨论了如何通过Spring AOP模块在方法执行前后增加额外功能。

Spring 框架中面向切面编程是关键组件中的一个。面向切面变成需要把程序分解成不同的部分,这个就是所谓的关注点。跨越一个程序多个点的函数称作关注点,这些横切关注点在概念上与应用程序的业务逻辑分离。日志、审计、声明式事务、安全性、高速缓存方面有很多常见的好例子。

OOP中模块化的关键单元是类,而在AOP中,模块化单元是切面。依赖注入帮助你将应用程序对象彼此解耦,AOP帮助你将横切关注点与它们影响的对象解耦。AOP是就像一些编程语言中的触发器,如Perl,.net,java,和其他。

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

AOP Terminologies

AOP术语:在我们使用AOP之前,先熟悉AOP的概念和术语。这些术语不是针对Spring来说的,而是和AOP相关。

NoTermsDescription
1Aspect这是一个提供横切需求的API模块。比如,日志模块应该叫做AOP日志切面。一个应用程序根据需求来说可以有很多的切面。
2Join point这表示应用程序中可以插入AOP方面的一个点。也可以说,它是在应用程序中使用Spring AOP框架进行操作的实际位置。
3Advice这是在方法执行之前或之后要采取的实际操作。这是一个实际的代码,它是在Spring AOP框架下在程序执行过程中调用的。
4Pointcut这是一组一个或多个能够执行实际操作的点。你可以使用某种表达和模式指定这些点,正如我们的例子中一样。
5Introduction允许在存在的类中添加新的方法和属性
6Target object目标对象被一个或多个对象通知,这个对象通常会被当作代理对象,也被称作被建议的对象。
7WeavingWeaving 把切面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时,类加载时和运行时完成。

Types of Advice

Spring 容器可以工作在五种通知模式:

NoAdviceDescription
1before在一个方法执行之前运行你要运行的实际操作
2after在一个方法执行之后运行你要运行的实际操作
3after-returning仅仅在一个方法执行成功之后运行你要运行的实际操作
4after-throwing仅仅在一个方法执行抛出异常的时候才执行你要执行的实际操作
5around在一个方法执行前后运行你要执行的实际操作

Custom Aspects Implementation

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

NoApproachDescription
1XML Schema based可以使用规则的类以及XML配置的形式实现切面
2@AspectJ based@AspectJ 引用一种声明方面的风格作为带有 Java 5 注释的常规 Java 类注释。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值