Spring Boot AOP After Advice

2025年1月17日 | 阅读时长:4分钟

After advice 用于面向方面编程以实现横切关注点。它是一种确保在方法执行后运行 advice 的 advice 类型。我们使用 @After 注解来实现 after advice。

让我们通过一个例子来理解 after advice。

Spring Boot After Advice 示例

步骤1: 打开Spring Initializr http://start.spring.io。

步骤 2: 提供 Group 名称。我们提供的 Group 名称是 com.javatpoint。

步骤 3: 提供 Artifact Id。 我们提供了 Artifact Id aop-after-advice-example。

步骤4: 添加Spring Web依赖项。

步骤 5: 点击 Generate 按钮。 当我们点击 Generate 按钮时,它将所有规范包装在一个 jar 文件中,并将其下载到本地系统。

Spring Boot AOP After Advice

步骤 6: 解压 下载的 jar 文件。

步骤 7: 导入 文件夹,按照以下步骤

文件 -> 导入 -> 现有 Maven 项目 -> 下一步 -> 浏览文件夹 aop-after-advice-example -> 完成。

步骤 8: 打开 pom.xml 文件并添加以下 AOP 依赖。 它是面向切面编程的启动器,具有 Spring AOPAspectJ

pom.xml

步骤 9: 打开 AopAfterAdviceExampleApplication.java 文件并添加注解 @EnableAspectJAutoProxy。

它支持处理使用 AspectJ 的 @Aspect 注解标记的组件。它与 @Configuration 注解一起使用。 我们可以使用 proxyTargetClass 属性来控制代理类型。 其默认值为 false

AopAfterAdviceExampleApplication.java

步骤 10: 创建一个名为 com.javatpoint.model. 的包。

步骤 11: 在包 com.javatpoint.model. 下创建一个模型类。 我们创建了一个名为 Employee 的类。 在类中,定义以下内容

  • 定义三个类型为 String 的变量 empId、firstNamesecondName
  • 生成 Getters 和 Setters(Getter 和 Setter 方法)。
  • 创建一个 default

Employee.java

步骤 12: 创建一个名为 com.javatpoint.controller. 的包。

步骤 13: 在包 com.javatpoint.controller. 下创建一个控制器类。 我们创建了一个名为 EmployeeController 的类。

在控制器类中,我们定义了两个映射,一个用于添加员工,另一个用于删除员工。

EmployeeController.java

步骤 14: 创建一个名为 com.javatpoint.service. 的包。

步骤 15: 在包 com.javatpoint.service. 下创建一个服务类。 我们创建了一个名为 EmployeeService 的类。

在 Service 类中,我们定义了两种方法 createEmployeedeleteEmployee。

EmployeeService.java

步骤 16: 创建一个名为 com.javatpoint.aspect. 的包。

步骤 17: 在包 com.javatpoint.aspect. 下创建一个方面类。 我们创建了一个名为 EmployeeServiceAspect 的类。

在方面类中,我们定义了 after-advice 逻辑。

EmployeeServiceAspect.java

在上面的类中

  • execution(表达式): 表达式是应用 advice 的方法。
  • @After: 使用 @After 注解注解的方法在与切入点表达式匹配的所有方法之后执行。

创建所有模块后,项目目录如下所示

Spring Boot AOP After Advice

我们已经设置了所有模块。 现在我们将运行应用程序。

步骤 18: 打开 AopAfterAdviceExampleApplication.java 文件并将其作为 Java 应用程序运行。

步骤 19: 打开浏览器并调用以下 URL: https://:8080/add/employee?empId={id}&firstName={fname}&secondName={sname}

在上面的 URL 中,/add/employee 是我们在 Controller 类中创建的映射。 我们使用了两个分隔符 (?)(&) 来分隔两个值。

Spring Boot AOP After Advice

在上面的输出中,我们分配了 emId 102, firstName=Sachin,secondName=Bansal。

让我们看看控制台。 我们看到在调用 EmployeeService 类的 createEmployee() 方法之后,EmployeeServiceAspect 类的 afterAdvice() 方法被调用,如下所示。

Spring Boot AOP After Advice

类似地,我们也可以通过调用 URL https://:8080/remove/employee?empId=102 来删除员工。 它返回消息 Employee removed,如下图所示。

Spring Boot AOP After Advice

在本节中,我们学习了 after advice 的工作原理。 在下一节中,我们将学习 around advice 的工作原理。