手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

SpringAOP给方法添加操作日志

时间:2024-10-13 02:37:28

1、我们咸犴孜稍先介绍一种使用自定义注解的方法进行日志记录。首先我们创建一个日志注解LogAnnotation,创建时选中Annotation,如下图所示。需要依赖的jar包如下,本文使用的是SpringBoot框架。<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.10</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>1.8.10</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.0.0.RELEASE</version></dependency>

SpringAOP给方法添加操作日志

2、编写拦截规则注解,使用@interface自定义注解,@Target指定注解作用的范围,METHOD是方法声明,@Retention指定这个注解可以保留多久,RUNTIME运行时会保留,@Documented 表示会包含在文档中。

SpringAOP给方法添加操作日志

3、接下来定义切面类,Spring支持AspectJ的注解式编程,其中@Aspect声明是一个切面,@Afterq前置增强、@Before后置寿喋馒揎增强、@Around环绕增强,可直接将拦截规则切点作为参数。拦截规则为切点PointCut,,可以使用@PointCut专门定义拦截规则,如下图所示,我们使用@Before前置通知,切点使用@annotation注解。在类上我们使用@AspectJ注解和@Component注解(将该类交给Spring管理)。

SpringAOP给方法添加操作日志

4、如果做日志拦截的话我们主要使用的是后置通知@After,在方法执行后将对方法的操作记录到日志中,有些必须的参数可以从session中获取,获取的方法如下图所示,前提是必须在session中写入了这些数据哦。

SpringAOP给方法添加操作日志

5、当执行方法发生异常时我们也可以记录到日志,此时使用@AfterThrowing注解,当方法执行产生异常时会走到这个异常拦截,我们可以将错误信息记录到log日志或者数据库等。

SpringAOP给方法添加操作日志

6、接下来我们看看如何获取到日志记录的信息吧,我们在上面@After和@AfterThrowing中都使用了getLogInfo(JoinPoint joinPoint)这个方法,我们下图中的方法可以获取到自定义注解的值,以及切点方法中的参数。

SpringAOP给方法添加操作日志

7、接下来我们看一下如何在方法上加上日志的AOP拦截吧,我们只需要在满足PointCut规则的方法上使用自定义注解@LogAnnotation,并配置3个属性的值即可。这样在执行方法后就会走到@After,发生异常时会走到@AfterThrowing中去记录日志。

SpringAOP给方法添加操作日志
© 手抄报圈