Spring学习--Spring中如何使用AOP进行切面编程

2025-11-19 07:16:05

1、SpringBoot提供了一个快速使用Spring进行开发的框架,我们还是基于 Spring Initializr 构建一个基于SpringBoot的应用框架,依赖部分只选择 lombok 即可(用于简化代码开发)。

Spring学习--Spring中如何使用AOP进行切面编程

Spring学习--Spring中如何使用AOP进行切面编程

2、将工程导入到 Eclipse 中,我们还需要手动在 pom.xml 中增加如下依赖:

<dependency>


   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

Spring学习--Spring中如何使用AOP进行切面编程

3、编写切面类,并定义切入点和增强逻辑

切面类需要使用注解 @Aspect@Component 进行标注,为了方便的进行日志记录,我们还添加了 lombok 的 @Slf4j 注解(图1示)。

通过注解 @PointCut 定义切入点,因为我们的增强逻辑是统计所有方法的执行时间,所以通过使用注解 @Around 在切入点织入环绕增强逻辑 (图2示),AOP还支持 @Before (方法执行前织入逻辑) @After (方法执行后织入)等。

Spring学习--Spring中如何使用AOP进行切面编程

Spring学习--Spring中如何使用AOP进行切面编程

4、定义两个业务测试类,注意,这两个类需要在我们定义切入点所指定的包下,并且需要通过 @Component 注解加入到Spring bean容器进行管理

图1示,在这个业务类中,我们让线程暂停50毫秒,模拟业务执行耗时

图2示,在这个业务类中,我们让线程暂停1000毫秒,模拟业务执行耗时

Spring学习--Spring中如何使用AOP进行切面编程

Spring学习--Spring中如何使用AOP进行切面编程

5、启动类中编写代码进行测试

启动类实现 CommandLineRunner 接口,在实现的 run 方法中,调用注入的业务类对象的方法(图1示),观察控制台的输出(图2示),通过输出可以看出,我们织入的统计业务方法执行所耗费时间的逻辑已经运行了,并输出了相关数据。

Spring学习--Spring中如何使用AOP进行切面编程

Spring学习--Spring中如何使用AOP进行切面编程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:70
  • 阅读量:173
  • 阅读量:135
  • 阅读量:91
  • 阅读量:169
  • 猜你喜欢