## 接口的使用
org.springframework.aop.aspectj.AspectInstanceFactory

- 使用AspectInstanceFactory的程序包
  程序包 | 说明
  --- | ---
  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.

- - ### org.springframework.aop.aspectj中AspectInstanceFactory的使用

    实现AspectInstanceFactory的org.springframework.aop.aspectj中的类
    限定符和类型 | 类和说明
    --- | ---
    `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.

    返回AspectInstanceFactory的org.springframework.aop.aspectj中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `AspectInstanceFactory` | AbstractAspectJAdvice.`getAspectInstanceFactory()` Return the factory for aspect instances.

    参数类型为AspectInstanceFactory的org.springframework.aop.aspectj中的构造器
    构造器和说明
    `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)`

  - ### org.springframework.aop.aspectj.annotation中AspectInstanceFactory的使用

    org.springframework.aop.aspectj.annotation中AspectInstanceFactory的子接口
    限定符和类型 | 接口和说明
    --- | ---
    `interface` | `MetadataAwareAspectInstanceFactory` Subinterface of `AspectInstanceFactory` that returns `AspectMetadata` associated with AspectJ-annotated classes.

    实现AspectInstanceFactory的org.springframework.aop.aspectj.annotation中的类
    限定符和类型 | 类和说明
    --- | ---
    `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.

  - ### org.springframework.aop.config中AspectInstanceFactory的使用

    实现AspectInstanceFactory的org.springframework.aop.config中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `SimpleBeanFactoryAwareAspectInstanceFactory` Implementation of `AspectInstanceFactory` that locates the aspect from the `BeanFactory` using a configured bean name.