Base interface holding AOP advice (action to take at a joinpoint) and a filter determining the applicability of the advice (such as a pointcut).
After returning advice is invoked only on normal method return, not if an exception is thrown.
Common marker interface for before advice, such as
Filter that restricts matching of a pointcut or introduction to a given set of target classes.
Subinterface of AOP Alliance Advice that allows additional interfaces to be implemented by an Advice, and available via a proxy using that interceptor.
Superinterface for advisors that perform one or more AOP introductions.
A specialized type of
MethodMatcher that takes into account introductions
when matching methods.
Interface supplying the information necessary to describe an introduction.
Subinterface of AOP Alliance MethodInterceptor that allows additional interfaces to be implemented by the interceptor, and available via a proxy using that interceptor.
Advice invoked before a method is invoked.
Part of a
Pointcut: Checks whether the target method is eligible for advice.
Core Spring pointcut abstraction.
Superinterface for all Advisors that are driven by a pointcut.
Extension of the AOP Alliance
interface, allowing access to the proxy that the method invocation was made through.
Marker for AOP proxy interfaces (in particular: introduction interfaces) that explicitly intend to return the raw target object (which would normally get replaced with the proxy object when returned from a method invocation).
Marker interface implemented by all AOP proxies.
Minimal interface for exposing the target class behind a proxy.
TargetSource is used to obtain the current "target" of
an AOP invocation, which will be invoked via reflection if no around
advice chooses to end the interceptor chain itself.
Tag interface for throws advice.
Exception that gets thrown when an AOP invocation failed because of misconfiguration or unexpected runtime issues.
Any AOP Alliance MethodInterceptor is usable in Spring.
Spring AOP also offers:
Spring AOP can be used programmatically or (preferably) integrated with the Spring IoC container.