Я использую 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" />
Мой вопрос заключается в том, как указать более одного другого пакета в выражении (* package1. . . (..)) **.
Прямо сейчас я объявляю один отдельный pointcut для каждого пакета и в аспекте один отдельный aop:before
и aop:after
запись для каждого pointcut.Но я думаю, что это должен быть идеальный способ для определения нескольких пакетов pointcut.