gpt4 book ai didi

spring - 如何为多个包指定单个切入点

转载 作者:IT老高 更新时间:2023-10-28 13:44:36 26 4
gpt4 key购买 nike

我正在使用 Aspect 在基于 spring mvc 的应用程序中记录事件。我正在使用 @controller 注释来定义我的应用程序中的任何 Controller 。我在两个不同的包中有两个不同的 Controller 说

  • com.package1 包含 Controller 1 类,我们将其命名为 AController
  • com.package2 包含 Controller 2 类,我们将其命名为 BController

我可以通过使用

将方面应用到一个特定的 Controller 包
<aop:config>
<aop:pointcut id="pointcut1"
expression="execution(* package1.*.*(..))"
id="policy1" />
<aop:aspect ref="aspect1" order="1">
<aop:before pointcut-ref="pointcut1" method="before" arg-names="joinPoint" />
<aop:after-returning returning="returnValue" arg-names="joinPoint, returnValue" pointcut-ref="pointcut1" method="after" />
</aop:aspect>
</aop:config>


<bean id="aspect1" class="com......aspectclass" />

我的问题是如何在 expression(* package1...(..))** 中指定多个不同的包.

现在我为每个包声明一个单独的切入点,并且在方面为每个切入点声明一个单独的 aop:beforeaop:after 条目。但我认为这应该是定义多个包切入点的理想方式。

最佳答案

您可以使用 bool 运算符:

expression="execution(* package1.*.*(..)) || execution(* package2.*.*(..))"

关于spring - 如何为多个包指定单个切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8426308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com