## 接口的使用
org.springframework.aop.aspectj.annotation.MetadataAwareAspectInstanceFactory

- 使用MetadataAwareAspectInstanceFactory的程序包
  程序包 | 说明
  --- | ---
  org.springframework.aop.aspectj.annotation | Classes enabling AspectJ 5 @Annotated classes to be used in Spring AOP.

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

    实现MetadataAwareAspectInstanceFactory的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.

    参数类型为MetadataAwareAspectInstanceFactory的org.springframework.aop.aspectj.annotation中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `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)`

    参数类型为MetadataAwareAspectInstanceFactory的org.springframework.aop.aspectj.annotation中的构造器
    构造器和说明
    `LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFactory maaif)` Create a new lazily initializing decorator for the given AspectInstanceFactory.
    `SyntheticInstantiationAdvisor(MetadataAwareAspectInstanceFactory aif)`