静下心来的个人专栏
上一篇

SpringAOP介绍

广告
选中文字可对指定文章内容进行评论啦,→和←可快速切换按钮,绿色背景文字可以点击查看评论额。
大纲

SpringAOP介绍

Spring AOP 使面向方面的编程更容易。在本篇中,您将学习使用 Spring AOP 进行面向方面的编程。面向方面的编程通过提供一种不同的方式来构建代码,从而增强了面向对象的编程概念。 Spring AOP 在内部使用 AspectJ,我们将在本篇中使用带有 AspectJ 注释的 Spring。

什么是 AOP?

Aspect 只是代码(类、方法等)中存在的一个常见特性。您认为重复的代码或逻辑可以有更好的结构来管理,而不是将其分散在不同的类和方法中。

例如,跟踪性能矩阵(Profiling)的代码、日志记录代码、数据库事务管理代码等都是方面的好例子。像这样的特性称为横切关注点。

面向方面的编程 (AOP) 建议您将横切关注点抽象并封装到单独的代码中。

什么是 Spring AOP?

Spring AOP 是 Spring 的重要组件之一,它补充了 Spring IoC 以提供非常强大的中间件解决方案。 Spring AOP 在内部使用 AspectJ,你也可以扩展 AOP API。

AOP 在 Spring Framework 中用于:

1、提供声明性企业服务——例如事务管理。

2让用户实现自定义方面,用 AOP 补充他们对 OOP 的使用。

Spring AOP 术语

AOP 术语有点困扰,让我们开始学习它们。 Spring 没有添加任何自己的术语,这些都是纯 AOP 概念。

1、Aspect – 横切关注点被写入/重构到一个单独的类中并使用@Aspect 进行注释。

2、Join Point——在 Spring AOP 中,连接点总是代表一个方法执行。这是应用Aspect的点。

3、Advice  – 这是Aspect在特定连接点采取的行动。 Spring 将通知建模为拦截器,并在连接点周围维护一系列拦截器。 Spring 中包含不同类型的建议。

  • Before advice – @Before
  • Around advice – @Around
  • After returning – @AfterReturning
  • After throwing – @AfterThrowing
  • After (finally) advice – @After

4、Pointcut(切入点)——它是一个匹配零个或多个连接点的表达式。 Advice 与切入点表达式相关联,并在与切入点匹配的任何连接点处运行。

5、Target Object(目标对象) – 应用建议的对象。 Spring AOP 使用运行时代理,因此该对象始终是代理对象。

6、AOP 代理——由 AOP 框架创建的用于实现方面的对象。它使用 JDK 动态代理或 CGLIB 代理创建。

7、Weaving(编织)——它将方面与其他应用程序类型或对象链接起来以创建建议对象。这可以在编译时(例如,使用 AspectJ 编译器)、加载时或运行时完成。 Spring AOP 与其他纯 Java AOP 框架一样,在运行时执行编织。

8、introduction – Spring AOP 允许您向任何建议的对象引入新接口(和相应的实现)。介绍称为类型间声明。

总结:

AOP 是对 Spring 的一个很好的补充,尤其是 Spring Security 以简单的方式为我们提供了惊人的功能。有一些问题需要解决和解决。必须使用适当的指南在更大的项目中实现 AOP,否则调试可能会变得很痛苦。此外,使用 AOP 元素的建模软件应用程序变得难以在 UML 中表示。如果您正在考虑下一代 Java 编程,例如GraalVM 原生构建,AOP 不是一个好主意。

版权声明:著作权归作者所有。

X

欢迎加群学习交流

联系我们