Package org.springframework.aop

# Interface Advisor

All Known Subinterfaces:
  `InstantiationModelAwarePointcutAdvisor`, `IntroductionAdvisor`, `PointcutAdvisor`

All Known Implementing Classes:
  `AbstractBeanFactoryPointcutAdvisor`, `AbstractGenericPointcutAdvisor`, `AbstractPointcutAdvisor`, `AspectJExpressionPointcutAdvisor`, `AspectJPointcutAdvisor`, `DeclareParentsAdvisor`, `DefaultBeanFactoryPointcutAdvisor`, `DefaultIntroductionAdvisor`, `DefaultPointcutAdvisor`, `NameMatchMethodPointcutAdvisor`, `ReflectiveAspectJAdvisorFactory.SyntheticInstantiationAdvisor`, `RegexpMethodPointcutAdvisor`, `StaticMethodMatcherPointcutAdvisor`

public interface 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). This interface is not for use by Spring users, but to allow for commonality in support for different types of advice.

Spring AOP is based around around advice delivered via method interception, compliant with the AOP Alliance interception API. The Advisor interface allows support for different types of advice, such as before and after advice, which need not be implemented using interception.

Author:
  Rod Johnson, Juergen Hoeller

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Advice`
`EMPTY_ADVICE`
Common placeholder for an empty `Advice` to be returned from `getAdvice()` if no proper advice has been configured (yet).

## Method Summary

Modifier and Type
Method
Description
`Advice`
`getAdvice()`
Return the advice part of this aspect.
`default boolean`
`isPerInstance()`
Return whether this advice is associated with a particular instance (for example, creating a mixin) or shared with all instances of the advised class obtained from the same Spring bean factory.

## Field Details

### EMPTY_ADVICE

static final Advice EMPTY_ADVICE
Common placeholder for an empty `Advice` to be returned from `getAdvice()` if no proper advice has been configured (yet).

Since:
  5.0

## Method Details

### getAdvice

Advice getAdvice()
Return the advice part of this aspect. An advice may be an interceptor, a before advice, a throws advice, etc.

Returns:
  the advice that should apply if the pointcut matches
See Also:
  - `MethodInterceptor`
  - `BeforeAdvice`
  - `ThrowsAdvice`
  - `AfterReturningAdvice`

### isPerInstance

default boolean isPerInstance()
Return whether this advice is associated with a particular instance (for example, creating a mixin) or shared with all instances of the advised class obtained from the same Spring bean factory.

Note that this method is not currently used by the framework. Typical Advisor implementations always return `true`. Use singleton/prototype bean definitions or appropriate programmatic proxy creation to ensure that Advisors have the correct lifecycle model.

As of 6.0.10, the default implementation returns `true`.

Returns:
  whether this advice is associated with a particular target instance