您的位置:首页 > 游戏 > 游戏 > 【Spring Boot AOP中切入表达式格式介绍】

【Spring Boot AOP中切入表达式格式介绍】

2024/10/7 2:21:38 来源:https://blog.csdn.net/qq_66726657/article/details/140171748  浏览:    关键词:【Spring Boot AOP中切入表达式格式介绍】

文章目录

  • 一、切入表达式简介
  • 二、切入表达式的语法
    • 1. 方法匹配符
      • 示例:
    • 2. 类型匹配符
      • 示例:

一、切入表达式简介

切入表达式(Pointcut Expression)是AOP中定义切入点(Pointcut)的一种方式。它定义了在哪些连接点(Join Point)上应用通知(Advice)。在Spring Boot中,切入表达式主要用于:

  • 定义切入点:指定在哪些方法或类上应用通知。
  • 精确匹配:使用通配符和逻辑运算符精确匹配目标方法。

切入表达式通常与通知类型(Advice Type)一起使用,如前置通知、后置通知、环绕通知等,以实现横切关注点的模块化管理。


二、切入表达式的语法

1. 方法匹配符

  • execution(modifiers-pattern? return-type-pattern declaring-type-pattern? method-name-pattern(param-pattern) throws-pattern?)

    • modifiers-pattern:方法的访问修饰符,如publicprotectedprivate等。
    • return-type-pattern:方法的返回类型,如void、具体的类名等。
    • declaring-type-pattern:方法所在类的全限定名或包名模式。
    • method-name-pattern:方法名,支持通配符匹配。
    • param-pattern:方法的参数模式,如(..)表示任意参数,(String, ..)表示第一个参数为String类型,其余任意类型参数。
    • throws-pattern:方法可能抛出的异常模式。

示例:

  • 匹配所有Service接口的所有方法:

    execution(* com.example.service.*.*(..))
    
  • 匹配所有返回类型为String的方法:

    execution(String com.example.service.*.*(..))
    

2. 类型匹配符

除了execution,还有其他类型的切入点表达式:

  • within:匹配指定类型内的所有方法。
  • target:匹配指定目标对象类型的方法调用。
  • args:匹配传入参数类型符合指定条件的方法。

示例:

  • 匹配所有@Service注解类中的方法:

    @within(org.springframework.stereotype.Service) && execution(* *(..))
    
  • 匹配所有以Service结尾的类及其子包下的方法:

    within(com.example.service..*) && execution(* *(..))
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com