Използвам Aspect за регистриране на дейности в моето пролетно приложение, базирано на 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...(..))**.
Точно сега декларирам един отделен pointcut за всеки пакет и в аспект един отделен aop:before
и aop:after
запис за всеки pointcut. Но мисля, че това трябва да е идеалният начин за дефиниране на множество пакети pointcut.