AOP:组合使用多个切入点表达式(Combining pointcut expressions)

简介: AOP:组合使用多个切入点表达式(Combining pointcut expressions)


  1. 切入点表达式可以使用'&&''||' 和“!”。
  2. 也可以通过名称来引用切入点表达式。


  • 下面的例子显示了三个切入点表达式:( anyPublicOperation如果一个方法执行连接点表示任何public方法的执行,则匹配); inTrading(如果方法执行在the trading module中,tradingOperation则匹配)和(如果方法执行代表the trading module中的 public公共方法,则匹配)。

  1. @Pointcut("execution(public * *(..))")
  2. privatevoidanyPublicOperation() {}
  3. @Pointcut("within(com.xyz.someapp.trading..*)")
  4. privatevoidinTrading() {}
  5. @Pointcut("anyPublicOperation() && inTrading()")
  6. privatevoidtradingOperation() {}


  • 当组合切入点子表达式时,'&&'在XML文档中是很笨拙的,所以关键字'and', 'or' and 'not' 可以分别代替'&&','||' 和'!'


  1. <aop:config>
  2.    <aop:aspect id="myAspect" ref="aBean">
  3.        <aop:pointcut id="businessService"
  4.            expression="execution(* com.xyz.myapp.service.*.*(..)) **and** this(service)"/>
  5.        <aop:before pointcut-ref="businessService" method="monitor"/>
  6.        ...
  7.    </aop:aspect>
  8. </aop:config>

参考来源:https://docs.spring.io/spring/docs/4.3.9.RELEASE/spring-framework-reference/html/aop.html



目录
相关文章
|
6月前
|
数据安全/隐私保护
Spring-AOP切入点表达式详解
Spring-AOP切入点表达式详解
108 0
|
4月前
|
监控 Java Spring
AOP切入同类调用方法不起作用,AopContext.currentProxy()帮你解决这个坑
AOP切入同类调用方法不起作用,AopContext.currentProxy()帮你解决这个坑
232 1
|
6月前
|
Java 开发者 Spring
Spring AOP的切点是通过使用AspectJ的切点表达式语言来定义的。
【5月更文挑战第1天】Spring AOP的切点是通过使用AspectJ的切点表达式语言来定义的。
68 5
|
6月前
|
XML Java 数据格式
spring AOP切入点execution表达式
spring AOP切入点execution表达式
|
6月前
|
XML Java 数据格式
演示spring AOP的切入表达式重用和优先级问题以及怎么实现基于xml的AOP
演示spring AOP的切入表达式重用和优先级问题以及怎么实现基于xml的AOP
66 0
|
6月前
|
XML Java 数据格式
spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知
spring-aop的切入表达式和JoinPoint的使用以及怎么返回通知获取结果和在异常通知中获取异常还有环绕通知
149 0
|
2月前
Micronaut AOP与代理机制:实现应用功能增强,无需侵入式编程的秘诀
AOP(面向切面编程)能够帮助我们在不修改现有代码的前提下,为应用程序添加新的功能或行为。Micronaut框架中的AOP模块通过动态代理机制实现了这一目标。AOP将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来,提高模块化程度。在Micronaut中,带有特定注解的类会在启动时生成代理对象,在运行时拦截方法调用并执行额外逻辑。例如,可以通过创建切面类并在目标类上添加注解来记录方法调用信息,从而在不侵入原有代码的情况下增强应用功能,提高代码的可维护性和可扩展性。
59 1
|
3天前
|
安全 Java 编译器
什么是AOP面向切面编程?怎么简单理解?
本文介绍了面向切面编程(AOP)的基本概念和原理,解释了如何通过分离横切关注点(如日志、事务管理等)来增强代码的模块化和可维护性。AOP的核心概念包括切面、连接点、切入点、通知和织入。文章还提供了一个使用Spring AOP的简单示例,展示了如何定义和应用切面。
30 1
什么是AOP面向切面编程?怎么简单理解?
|
8天前
|
XML Java 开发者
论面向方面的编程技术及其应用(AOP)
【11月更文挑战第2天】随着软件系统的规模和复杂度不断增加,传统的面向过程编程和面向对象编程(OOP)在应对横切关注点(如日志记录、事务管理、安全性检查等)时显得力不从心。面向方面的编程(Aspect-Oriented Programming,简称AOP)作为一种新的编程范式,通过将横切关注点与业务逻辑分离,提高了代码的可维护性、可重用性和可读性。本文首先概述了AOP的基本概念和技术原理,然后结合一个实际项目,详细阐述了在项目实践中使用AOP技术开发的具体步骤,最后分析了使用AOP的原因、开发过程中存在的问题及所使用的技术带来的实际应用效果。
29 5
|
26天前
|
Java 容器
AOP面向切面编程
AOP面向切面编程
38 0