springaop实现日志管理及详解(spring aop日志切面)

springaop实现日志管理及详解(spring aop日志切面)AOP Aspect Oriented Programming 是面向切面编程的技术 AOP 基于 IoC 基础 是对 OOP 的有益补充 流行的 AOP 框架有 Sping AOP AspectJ AOP 技术它利用一种称为 横切 的技术 剖解开封装的对象内部 并将那些影响了多个类的公共行为封装到一个可重用模块 并将其命名为 Aspect 即切面 所谓 切面 简单说就是那些与业务无关 却为业务模块所共同调用的逻辑或责任封装起来 便于减少系统的重复代码 降低模块之间的耦合度



  AOP(Aspect Oriented Programming),是面向切面编程的技术。AOP基于IoC基础,是对OOP的有益补充,流行的AOP框架有Sping AOP、AspectJ

  AOP技术它利用一种称为“横切”的技术,剖解开封装的对象内部并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为”Aspect”,即切面。所谓”切面”,简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性

                

1、切面(aspect)

散落在系统各处的通用的业务逻辑代码,如上图中的日志模块,权限模块,事务模块等,切面用来装载pointcut和advice

2、通知(advice)

所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类

3、连接点(joinpoint)

被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器

4、切入点(pointcut)

拦截的方法,连接点拦截后变成切入点

6、目标对象(Target Object)

代理的目标对象,指要织入的对象模块,如上图的模块一、二、三

7、织入(weave)

通过切入点切入,将切面应用到目标对象并导致代理对象创建的过程

8、AOP代理(AOP Proxy)

AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理

  1. Before advice:在某连接点(JoinPoint)之前执行的通知,但这个通知不能阻止连接点前的执行。
    < aop:before>

  2. After advice:当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。
    < aop:after>

  3. After returnadvice:在某连接点正常完成后执行的通知,不包括抛出异常的情况。
    < aop:after-returning>

  4. Around advice:包围一个连接点的通知,类似Web中Servlet规范中的Filter的doFilter方法。可以在方法执行的前后实现逻辑,也可以选择不执行方法
    < aop:around>

  5. Afterthrowing advice:在方法抛出异常退出时执行的通知。
    < aop:after-throwing>

配置之前注意配置文件要加上命名空间:xmlns:aop="http://www.springframework.org/schema/aop"

spring-mvc.xml

LogInterceptor.java

在这里我没有配bean是因为我在之前的配置文件里面写了自动扫描组件的配置了

要加入日志管理逻辑的地方

结果截图:

spring-mvc.xml

LogInterceptor.java

要加入逻辑的地方同上。

结果截图:

基于注解,所以spring-mvc.xml也是和上面的一样的。

LogInterceptor.java(这里我只加入前置日志)

同时,加入逻辑的地方需要加入Log注解

结果截图:

两个业务逻辑模块都是基于接口

TestAOPDaoImpl .java

TestAOPServiceImpl.java

JointPoint是连接点,aop创建代理后会返回一个连接点,然后在通知中可以通过该连接点实现我们的切面逻辑

日志切面

时间切面:

在applicationContext中配置切面:

当有多个切面时,Spring默认是按照切面定义的顺序来执行,也可以通过order属性来配置切面的执行属性,order=1 早于 order=2执行

重点是定义切入点

在applicationContext的配置:

编程小号
上一篇 2025-02-13 11:06
下一篇 2025-03-07 10:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/12788.html