SpringBoot使用AspectJ实现AOP记录接口:请求日志、响应日志、异常日志
Spring 面向切面编程(AOP),系列文章:
《Spring使用AspectJ的注解式实现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)!