自学内容网 自学内容网

SpringBoot使用AspectJ实现AOP记录接口:请求日志、响应日志、异常日志

Spring 面向切面编程(AOP),系列文章:

《Spring面向切面编程(AOP)的简单实例》

《Spring使用AspectJ的注解式实现AOP面向切面编程》

《SpringBoot使用AspectJ实现AOP记录接口:请求日志、响应日志、异常日志》

《SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志》

1、AspectJ 框架的简介

AspectJ 是一个面向切面的框架,它扩展了 Java 语言,并定义了 AOP(面向切面编程)语法。AspectJ 作为 AOP 的具体实现之一,向 Java 中加入了连接点(Join Point)这个新概念,以及切点(pointcut)、通知(Advice)、类型间声明(Inter-type declaration)和方面(Aspect)等新结构。这些新结构使得AspectJ能够处理那些使用传统的面向对象编程方法难以解决的问题,如横切关注点(如安全性、日志记录、事务管理等)的模块化。

1.1 Spring 支持 AspectJ 的注解式切面编程

(1)使用@Aspect声明一个切面。

(2)使用@After、@Before、@Around 定义建言(advice),可直接将拦截规则(切点)作为参数。

(3)其中@After、@Before、@Around 参数的拦截规则为切点(PointCut),为了使切点复用,可以使用@Pointcut专门定义拦截规则,然后在@After、@Before、@Around的参数中调用。

(4)其中符合条件的每一个被拦截处为连接点(JoinPoint)。

拦截方式分为:基于注解式拦截、基于方法规则式拦截。

其中注解式拦截能够很好地控制要拦截的粒度和获得更丰富的信息,Spring本身在事务处理(@Transactional)和数据缓存(@Cacheable)等都使用了基于注解式拦截。

1.2 AspectJ的注解说明

@Aspect:标记为切面类。

@Before:在切入点开始处切入内容。

@After:在切入点结尾处切入内容。

@AfterReturning:在切入点 return 内容之后切入内容(可以用来对处理返回值做一些加工处理)。</


原文地址:https://blog.csdn.net/pan_junbiao/article/details/143813483

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!