# Package org.springframework.aop

@NonNullApi @NonNullFields package org.springframework.aop
Core Spring AOP interfaces, built on AOP Alliance AOP interoperability interfaces.

Any AOP Alliance MethodInterceptor is usable in Spring.
Spring AOP also offers:

- Introduction support
- A Pointcut abstraction, supporting "static" pointcuts (class and method-based) and "dynamic" pointcuts (also considering method arguments). There are currently no AOP Alliance interfaces for pointcuts.
- A full range of advice types, including around, before, after returning and throws advice.
- Extensibility allowing arbitrary custom advice types to be plugged in without modifying the core framework.

Spring AOP can be used programmatically or (preferably) integrated with the Spring IoC container.

Related Packages
Package
Description
org.springframework.aop.aspectj
AspectJ integration package.
org.springframework.aop.config
Support package for declarative AOP configuration, with XML schema being the primary configuration format.
org.springframework.aop.framework
Package containing Spring's basic AOP infrastructure, compliant with the AOP Alliance interfaces.
org.springframework.aop.interceptor
Provides miscellaneous interceptor implementations.
org.springframework.aop.scope
Support for AOP-based scoping of target objects, with configurable backend.
org.springframework.aop.support
Convenience classes for using Spring's AOP API.
org.springframework.aop.target
Various `TargetSource` implementations for use with Spring AOP.
Class
Description
Advisor
Base interface holding AOP advice (action to take at a joinpoint) and a filter determining the applicability of the advice (such as a pointcut).
AfterAdvice
Common marker interface for after advice, such as `AfterReturningAdvice` and `ThrowsAdvice`.
AfterReturningAdvice
After returning advice is invoked only on normal method return, not if an exception is thrown.
AopInvocationException
Exception that gets thrown when an AOP invocation failed because of misconfiguration or unexpected runtime issues.
BeforeAdvice
Common marker interface for before advice, such as `MethodBeforeAdvice`.
ClassFilter
Filter that restricts matching of a pointcut or introduction to a given set of target classes.
DynamicIntroductionAdvice
Subinterface of AOP Alliance Advice that allows additional interfaces to be implemented by an Advice, and available via a proxy using that interceptor.
IntroductionAdvisor
Superinterface for advisors that perform one or more AOP introductions.
IntroductionAwareMethodMatcher
A specialized type of `MethodMatcher` that takes into account introductions when matching methods.
IntroductionInfo
Interface supplying the information necessary to describe an introduction.
IntroductionInterceptor
Subinterface of AOP Alliance MethodInterceptor that allows additional interfaces to be implemented by the interceptor, and available via a proxy using that interceptor.
MethodBeforeAdvice
Advice invoked before a method is invoked.
MethodMatcher
Part of a `Pointcut`: Checks whether the target method is eligible for advice.
Pointcut
Core Spring pointcut abstraction.
PointcutAdvisor
Superinterface for all Advisors that are driven by a pointcut.
ProxyMethodInvocation
Extension of the AOP Alliance `MethodInvocation` interface, allowing access to the proxy that the method invocation was made through.
RawTargetAccess
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).
SpringProxy
Marker interface implemented by all AOP proxies.
TargetClassAware
Minimal interface for exposing the target class behind a proxy.
TargetSource
A `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.
ThrowsAdvice
Tag interface for throws advice.