`Point-Cuts`和`Advices`只适用于Spring中的bean吗?

时间:2014-01-17 09:09:36

标签: java spring

我发布了以下问题,我仍在寻找答案。

Around Advice for methods on Interface

在考虑这个问题时,我想到了另一个问题:

  • Point-CutsAdvices仅适用于在spring的appContext.xml中声明为bean的类

  • Point-CutsAdvices不适用于代码库中的所有类吗?

1 个答案:

答案 0 :(得分:2)

直接来自Spring AOP文档。文档确实说Spring AOP仅适用于method execution join points(advising the execution of methods on Spring beans)

6.1.2。 Spring AOP功能和目标

  

Spring AOP是用纯Java实现的。没有必要特别的   编译过程。 Spring AOP不需要控制类   加载器层次结构,因此适用于J2EE Web容器   或应用服务器。 Spring AOP目前仅支持方法   执行连接点(建议在Spring上执行方法   豆子)。虽然支持,但没有实施现场拦截   可以在不破坏核心Spring AOP的情况下添加字段拦截   蜜蜂。如果您需要建议现场访问和更新连接点,   考虑像AspectJ这样的语言。 Spring AOP的AOP方法   与大多数其他AOP框架不同。目的不是   提供最完整的AOP实现(尽管Spring AOP是   很有能力);它提供了一种紧密的整合   AOP实现和Spring IoC帮助解决常见问题   企业应用。因此,例如,Spring Framework的AOP   功能通常与Spring IoC一起使用   容器。使用普通bean定义语法配置方面   (虽然这允许强大的“autoproxying”功能):这是一个   与其他AOP实施的重要区别。有一些   使用Spring AOP无法轻松或高效地完成的任务,例如   建议非常细粒度的对象(例如域对象):   在这种情况下,AspectJ是最佳选择。但是,我们的经验是   Spring AOP为大多数问题提供了出色的解决方案   适合AOP的J2EE应用程序。