spring
IntelliJ
Spring的一个关键组件是AOP框架。虽然Spring IoC容器不依赖于AOP(意味着您不需要使用AOP),但AOP补充了Spring IoC以提供非常强大的中间件解决方案。
Spring通过使用基于模式的方法或@AspectJ注释样式,提供了编写自定义方面的简单而强大的方法 。这两种样式都提供完全类型的建议和使用AspectJ切入点语言,同时仍然使用Spring AOP进行编织。
AOP在Spring Framework中用于:提供声明性企业服务。最重要的此类服务是 声明式事务管理。让用户实现自定义方面,补充他们使用AOP的OOP。
让我们首先定义一些中心AOP概念和术语。这些术语不是特定于Spring的。不幸的是,AOP术语不是特别直观。但是,如果Spring使用自己的术语,那将更加令人困惑。
Spring AOP包括以下类型的建议:
围绕建议是最普遍的建议。由于Spring AOP(如AspectJ)提供了全方位的建议类型,因此我们建议您使用可以实现所需行为的最不强大的建议类型。例如,如果您只需要使用方法的返回值更新缓存,那么最好实现返回后的建议而不是周围的建议,尽管周围的建议可以完成同样的事情。使用最具体的建议类型可以提供更简单的编程模型,减少错误的可能性。例如,您不需要proceed() 在JoinPointused for around advice 上调用该方法,因此,您无法调用它。
所有通知参数都是静态类型的,因此您可以使用相应类型的通知参数(例如,方法执行的返回值的类型)而不是Object数组。
由切入点匹配的连接点的概念是AOP的关键,它将其与仅提供拦截的旧技术区分开来。切入点使得建议可以独立于面向对象的层次结构进行定向。例如,您可以将一个提供声明性事务管理的建议应用于跨多个对象的一组方法(例如服务层中的所有业务操作)。