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

2024-11-12 06:03:08

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进行切面编程
猜你喜欢