并不是所有的AOP框架都是相同的,它们在连接点模型上可能有强弱 之分。有些允许在字段修饰符级别应用通知,而另一些只支持与方法 调用相关的连接点。它们织入切面的方式和时机也有所不同。但是无 论如何,创建切点来定义切面所织入的连接点是AOP框架的基本功 能。
因为这是一本介绍Spring的图书,所以我们会关注Spring AOP 。虽然 如此,Spring和AspectJ项目之间有大量的协作,而且Spring对AOP的支持在很多方面借鉴了AspectJ项目。
Spring提供了4种类型的AOP支持:
前三种都是Spring AOP实现的变体,Spring AOP构建在动态代理基础 之上,因此,Spring对AOP的支持局限于方法拦截。
1.为什么放弃Spring经典Aop模型?
Spring经典的AOP看起来就显得非常笨重和过于复杂,直接使用 ProxyFactory Bean会让人感觉厌烦。但是现在Spring提供了更简洁和干净 的面向切面编程方式。
2.如何将纯POJO转哈为切面?
引入了简单的声明式AOP和基于注解的AOP之 后, 借助Spring的aop命名空间,我们可以将纯POJO转换为切面。
3.这种方式有什么缺点?
实际 上,这些POJO只是提供了满足切点条件时所要调用的方法。遗憾的是,这种技术需要XML配置,但这的确是声明式地将对象转换为切面的简便方式。
4.Spring借鉴Aspect切面是为了什么?
Spring借鉴了AspectJ的切面,以提供注解驱动的AOP 。
5.本质上是为了什么?
本质上,它依 然是Spring基于代理的AOP ,但是编程模型几乎与编写成熟的AspectJ 注解切面完全一致。
6.Aop风格的好处?
这种AOP风格的好处在于能够不使用XML来完成 功能。
7.AOP需求超过简单的方法调用?
如果你的AOP需求超过了简单的方法调用 (如构造器或属性拦截) , 那么你需要考虑使用AspectJ来实现切面。在这种情况下,上文所示的第四种类型能够帮助你将值注入到AspectJ驱动的切面中。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。