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