当前位置:网站首页 > 产品管理 > 正文

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



  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的配置:

到此这篇springaop实现日志管理及详解(spring aop日志切面)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 日志管理工具有哪些(日志管理工具有哪些种类)2026-04-23 19:45:08
  • 产品经理有什么证要考(产品经理考什么证书)2026-04-23 19:45:08
  • 产品经理入门第一本书pdf(产品经理入门级书籍)2026-04-23 19:45:08
  • 产品经理入门难吗知乎(产品经理入行门槛)2026-04-23 19:45:08
  • 产品经理入门书籍电子版(产品经理入门第一本书)2026-04-23 19:45:08
  • 日志管理功能有哪些(日志管理系统功能有哪些)2026-04-23 19:45:08
  • 产品经理很难吗(产品经理要会什么)2026-04-23 19:45:08
  • spring 日志管理(spring日志管理)2026-04-23 19:45:08
  • 日志管理功能描述(日志管理功能描述正确的是)2026-04-23 19:45:08
  • oppo手机的文件管理在哪里找到(oppo手机文件管理在哪?)2026-04-23 19:45:08
  • 全屏图片