如何为多个包指定单个切入点
我正在使用 Aspect 来记录基于 spring mvc 的应用程序中的活动。我使用 @controller 注释来定义应用程序中的任何控制器。我在两个不同的包中有两个不同的控制器,比如
- com.package1 包含控制器 1 类,我们将其命名为 AController
- com.package2 包含控制器 2 类,我们将其命名为 BController
我可以通过使用将方面应用于一个特定的控制器包
<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:before
和 aop:after
条目。但我认为这应该是定义多个包切入点的理想方式。
I am using Aspect for logging activities in my spring mvc based application. I am using @controller annotations to define any controller in my application. I have two different controller in two different package say
- com.package1 contains controller 1 class, let's name it as AController
- com.package2 contains controller 2 class, let's name it as BController
I am able to apply aspect to one particular package of controllers by using
<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" />
My question is how to specify more that one different package in expression(* package1...(..))**.
Right now I am declaring one separate pointcut for each package and in aspect one separate aop:before
and aop:after
entry for each pointcut. But I think this should be ideal way to define multiple packages pointcut.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用布尔运算符:
You can use boolean operators:
如果您使用注释
In case you use Annotations
在 Spring Boot
示例中 Spring项目/AOP
In spring Boot
Example Spring-projects/AOP