## Uses of Interface
org.springframework.aop.aspectj.annotation.MetadataAwareAspectInstanceFactory

- Packages that use MetadataAwareAspectInstanceFactory
  Package | Description
  --- | ---
  org.springframework.aop.aspectj.annotation | Classes enabling AspectJ 5 @Annotated classes to be used in Spring AOP.

- - ### Uses of MetadataAwareAspectInstanceFactory in org.springframework.aop.aspectj.annotation

    Classes in org.springframework.aop.aspectj.annotation that implement MetadataAwareAspectInstanceFactory
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanFactoryAspectInstanceFactory` `AspectInstanceFactory` implementation backed by a Spring `BeanFactory`.
    `class` | `LazySingletonAspectInstanceFactoryDecorator` Decorator to cause a `MetadataAwareAspectInstanceFactory` to instantiate only once.
    `class` | `PrototypeAspectInstanceFactory` `AspectInstanceFactory` backed by a `BeanFactory`-provided prototype, enforcing prototype semantics.
    `class` | `SimpleMetadataAwareAspectInstanceFactory` Implementation of `MetadataAwareAspectInstanceFactory` that creates a new instance of the specified aspect class for every `SimpleAspectInstanceFactory.getAspectInstance()` call.
    `class` | `SingletonMetadataAwareAspectInstanceFactory` Implementation of `MetadataAwareAspectInstanceFactory` that is backed by a specified singleton object, returning the same instance for every `SingletonAspectInstanceFactory.getAspectInstance()` call.

    Methods in org.springframework.aop.aspectj.annotation with parameters of type MetadataAwareAspectInstanceFactory
    Modifier and Type | Method and Description
    --- | ---
    `Advice` | AspectJAdvisorFactory.`getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)` Build a Spring AOP Advice for the given AspectJ advice method.
    `Advice` | ReflectiveAspectJAdvisorFactory.`getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)`
    `Advisor` | AspectJAdvisorFactory.`getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrder, String aspectName)` Build a Spring AOP Advisor for the given AspectJ advice method.
    `Advisor` | ReflectiveAspectJAdvisorFactory.`getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aspectInstanceFactory, int declarationOrderInAspect, String aspectName)`
    `List<Advisor>` | AspectJAdvisorFactory.`getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)` Build Spring AOP Advisors for all annotated At-AspectJ methods on the specified aspect instance.
    `List<Advisor>` | ReflectiveAspectJAdvisorFactory.`getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory)`

    Constructors in org.springframework.aop.aspectj.annotation with parameters of type MetadataAwareAspectInstanceFactory
    Constructor and Description
    `LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFactory maaif)` Create a new lazily initializing decorator for the given AspectInstanceFactory.
    `SyntheticInstantiationAdvisor(MetadataAwareAspectInstanceFactory aif)`