Java Reference
In-Depth Information
You can match the method execution join points within all classes that implement the
ArithmeticCalculator
interface by adding a plus symbol.
within(ArithmeticCalculator+)
Your custom annotation
@LoggingRequired
can be applied to the class level instead of the
method level.
package com.apress.springenterpriserecipes.calculator;
@LoggingRequired
public class ArithmeticCalculatorImpl implements ArithmeticCalculator {
...
}
Then you can match the join points within the classes that have been annotated with
@LoggingRequired
.
@within(com.apress.springenterpriserecipes.calculator.LoggingRequired)
Bean Name Patterns
Spring supports a new pointcut type that is used to match bean names. For example, the following
pointcut expression matches beans whose name ends with
Calculator
:
bean(*Calculator)
■
Caution This pointcut type is supported only in XML-based Spring AOP configurations, not in AspectJ annotations.
Combining Pointcut Expressions
In AspectJ, pointcut expressions can be combined with the operators
&&
(and),
||
(or), and
!
(not).
For example, the following pointcut matches the join points within classes that implement either the
ArithmeticCalculator
or
UnitCalculator
interface:
within(ArithmeticCalculator+) || within(UnitCalculator+)
The operands of these operators can be any pointcut expressions or references to other pointcuts.
package com.apress.springenterpriserecipes.calculator;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class CalculatorPointcuts {
@Pointcut("within(ArithmeticCalculator+)")
public void arithmeticOperation() {}
Search WWH ::
Custom Search