## Uses of Interface
org.springframework.aop.aspectj.AspectInstanceFactory

- Packages that use AspectInstanceFactory
  Package | Description
  --- | ---
  org.springframework.aop.aspectj | AspectJ integration package.
  org.springframework.aop.aspectj.annotation | Classes enabling AspectJ 5 @Annotated classes to be used in Spring AOP.
  org.springframework.aop.config | Support package for declarative AOP configuration, with XML schema being the primary configuration format.

- - ### Uses of AspectInstanceFactory in org.springframework.aop.aspectj

    Classes in org.springframework.aop.aspectj that implement AspectInstanceFactory
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SimpleAspectInstanceFactory` Implementation of `AspectInstanceFactory` that creates a new instance of the specified aspect class for every `SimpleAspectInstanceFactory.getAspectInstance()` call.
    `class` | `SingletonAspectInstanceFactory` Implementation of `AspectInstanceFactory` that is backed by a specified singleton object, returning the same instance for every `SingletonAspectInstanceFactory.getAspectInstance()` call.

    Methods in org.springframework.aop.aspectj that return AspectInstanceFactory
    Modifier and Type | Method and Description
    --- | ---
    `AspectInstanceFactory` | AbstractAspectJAdvice.`getAspectInstanceFactory()` Return the factory for aspect instances.

    Constructors in org.springframework.aop.aspectj with parameters of type AspectInstanceFactory
    Constructor and Description
    `AbstractAspectJAdvice(Method aspectJAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aspectInstanceFactory)` Create a new AbstractAspectJAdvice for the given advice method.
    `AspectJAfterAdvice(Method aspectJBeforeAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)`
    `AspectJAfterReturningAdvice(Method aspectJBeforeAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)`
    `AspectJAfterThrowingAdvice(Method aspectJBeforeAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)`
    `AspectJAroundAdvice(Method aspectJAroundAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)`
    `AspectJMethodBeforeAdvice(Method aspectJBeforeAdviceMethod, AspectJExpressionPointcut pointcut, AspectInstanceFactory aif)`

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

    Subinterfaces of AspectInstanceFactory in org.springframework.aop.aspectj.annotation
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `MetadataAwareAspectInstanceFactory` Subinterface of `AspectInstanceFactory` that returns `AspectMetadata` associated with AspectJ-annotated classes.

    Classes in org.springframework.aop.aspectj.annotation that implement AspectInstanceFactory
    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.

  - ### Uses of AspectInstanceFactory in org.springframework.aop.config

    Classes in org.springframework.aop.config that implement AspectInstanceFactory
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SimpleBeanFactoryAwareAspectInstanceFactory` Implementation of `AspectInstanceFactory` that locates the aspect from the `BeanFactory` using a configured bean name.