Spring Boot AOP Before Advice(Spring Boot AOP 前置通知)2025年1月17日 | 阅读时长:4分钟 Before advice(前置通知)用于面向切面编程,以实现横切关注点。它是一种在方法执行之前运行通知的通知类型。我们使用 @Before 注解来实现前置通知。 让我们通过一个例子来理解前置通知。 Spring Boot Before Advice Example(Spring Boot 前置通知示例)步骤1: 打开Spring Initializr http://start.spring.io。 步骤 2: 提供 Group 名称。我们提供的 Group 名称是 com.javatpoint。 步骤 3: 提供 Artifact Id (构件 ID)。 我们提供了 Artifact Id aop-before-advice-example。 步骤 4: 添加 Spring Web(Spring Web) 依赖项。 步骤 5: 点击 Generate 按钮。 当我们点击 Generate 按钮时,它将所有规范包装在一个 jar 文件中,并将其下载到本地系统。 ![]() 步骤 6: 解压 下载的 jar 文件。 步骤 7: 导入 文件夹,按照以下步骤 File(文件) -> Import(导入) -> Existing Maven Projects(现有 Maven 项目) -> Next(下一步) -> Browse the Folder(浏览文件夹) aop-before-advice-example -> Finish(完成)。 步骤 8: 打开 pom.xml 文件并添加以下 AOP 依赖。 它是面向切面编程的启动器,具有 Spring AOP 和 AspectJ。 pom.xml 步骤 9: 打开 AopBeforeAdviceExampleApplication.java 文件并添加注解 @EnableAspectJAutoProxy。 它支持处理使用 AspectJ 的 @Aspect 注解标记的组件。它与 @Configuration 注解一起使用。我们可以使用 proxyTargetClass 属性来控制代理的类型。 它的默认值是 false。 AopBeforeAdviceExampleApplication.java 步骤 10: 创建一个名为 com.javatpoint.model. 的包。 步骤 11: 在包 com.javatpoint.model. 下创建一个模型类。我们创建了一个名为 Employee 的类。 在类中,定义以下内容
Employee.java 步骤 12: 创建一个名为 com.javatpoint.controller. 的包。 步骤 13: 在包 com.javatpoint.controller. 下创建一个控制器类。我们创建了一个名为 EmployeeController 的类。 在控制器类中,我们定义了两个映射,一个用于添加员工,另一个用于删除员工。 EmployeeController.java 步骤 14: 创建一个名为 com.javatpoint.service. 的包。 步骤 15: 在包 com.javatpoint.service. 下创建一个服务类。我们创建了一个名为 EmployeeService 的类。 在服务类中,我们定义了两个方法 createEmployee 和 deleteEmployee。 EmployeeService.java 步骤 16: 创建一个名为 com.javatpoint.aspect. 的包。 步骤 17: 在包 com.javatpoint.aspect. 下创建一个切面类。我们创建了一个名为 EmployeeServiceAspect 的类。 在切面类中,我们定义了前置通知逻辑。 EmployeeServiceAspect.java 在上面的类中
创建所有模块后,项目目录如下所示 ![]() 我们已经设置了所有模块。 现在我们将运行该应用程序。 步骤 18: 打开 AopBeforeAdviceExampleApplication.java 文件并将其作为 Java 应用程序运行。 步骤 19: 打开浏览器并调用以下 URL: https://:8080/add/employee?empId={id}&firstName={fname}&secondName={sname} 在上面的 URL 中,/add/employee 是我们在 Controller 类中创建的映射。我们使用两个分隔符 (?) 和 (&) 来分隔两个值。 ![]() 在上面的输出中,我们分配了 emId 101,firstName=Tim, 和 secondName=cook。 让我们看一下控制台。我们看到在调用 EmployeeService 类的 createEmployee() 方法之前,EmployeeServiceAspect 类的 beforeAdvice() 方法会调用,如下所示。 ![]() 类似地,我们也可以通过调用 URL https://:8080/remove/employee?empId=101 来删除员工。它会返回一条消息 Employee removed(员工已删除),如下图所示。 ![]() 在本节中,我们学习了前置通知的工作原理。在下一节中,我们将学习后置通知的工作原理并在一个应用程序中实现它。 |
我们请求您订阅我们的新闻通讯以获取最新更新。