## 接口的使用
org.springframework.aop.TargetSource

- 使用TargetSource的程序包
  程序包 | 说明
  --- | ---
  org.springframework.aop.framework | Package containing Spring's basic AOP infrastructure, compliant with the AOP Alliance interfaces.
  org.springframework.aop.framework.autoproxy | Bean post-processors for use in ApplicationContexts to simplify AOP usage by automatically creating AOP proxies without the need to use a ProxyFactoryBean.
  org.springframework.aop.framework.autoproxy.target |
  org.springframework.aop.target |
  org.springframework.aop.target.dynamic |

- - ### org.springframework.aop.framework中TargetSource的使用

    声明为TargetSource的org.springframework.aop.framework中的字段
    限定符和类型 | 字段和说明
    --- | ---
    `static TargetSource` | AdvisedSupport.`EMPTY_TARGET_SOURCE` Canonical TargetSource when there's no target, and behavior is supplied by the advisors.

    返回TargetSource的org.springframework.aop.framework中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected TargetSource` | AbstractSingletonProxyFactoryBean.`createTargetSource(Object target)` Determine a TargetSource for the given target (or TargetSource).
    `TargetSource` | Advised.`getTargetSource()` Return the `TargetSource` used by this `Advised` object.
    `TargetSource` | AdvisedSupport.`getTargetSource()`

    参数类型为TargetSource的org.springframework.aop.framework中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected void` | AdvisedSupport.`copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, List<Advisor> advisors)` Copy the AOP configuration from the given AdvisedSupport object, but allow substitution of a fresh TargetSource and a given interceptor chain.
    `static <T> T` | ProxyFactory.`getProxy(Class<T> proxyInterface, TargetSource targetSource)` Create a proxy for the specified `TargetSource`, implementing the specified interface.
    `static Object` | ProxyFactory.`getProxy(TargetSource targetSource)` Create a proxy for the specified `TargetSource` that extends the target class of the `TargetSource`.
    `void` | Advised.`setTargetSource(TargetSource targetSource)` Change the `TargetSource` used by this `Advised` object.
    `void` | AdvisedSupport.`setTargetSource(TargetSource targetSource)`

    参数类型为TargetSource的org.springframework.aop.framework中的构造器
    构造器和说明
    `ProxyFactory(Class<?> proxyInterface, TargetSource targetSource)` Create a ProxyFactory for the specified `TargetSource`, making the proxy implement the specified interface.

  - ### org.springframework.aop.framework.autoproxy中TargetSource的使用

    返回TargetSource的org.springframework.aop.framework.autoproxy中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected TargetSource` | AbstractAutoProxyCreator.`getCustomTargetSource(Class<?> beanClass, String beanName)` Create a target source for bean instances.
    `TargetSource` | TargetSourceCreator.`getTargetSource(Class<?> beanClass, String beanName)` Create a special TargetSource for the given bean, if any.

    参数类型为TargetSource的org.springframework.aop.framework.autoproxy中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected Object` | AbstractAutoProxyCreator.`createProxy(Class<?> beanClass, String beanName, Object[] specificInterceptors, TargetSource targetSource)` Create an AOP proxy for the given bean.
    `protected Object[]` | AbstractAdvisorAutoProxyCreator.`getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource targetSource)`
    `protected abstract Object[]` | AbstractAutoProxyCreator.`getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource customTargetSource)` Return whether the given bean is to be proxied, what additional advices (e.g.
    `protected Object[]` | BeanNameAutoProxyCreator.`getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource targetSource)` Identify as bean to proxy if the bean name is in the configured list of names.

  - ### org.springframework.aop.framework.autoproxy.target中TargetSource的使用

    返回TargetSource的org.springframework.aop.framework.autoproxy.target中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `TargetSource` | AbstractBeanFactoryBasedTargetSourceCreator.`getTargetSource(Class<?> beanClass, String beanName)`

  - ### org.springframework.aop.target中TargetSource的使用

    实现TargetSource的org.springframework.aop.target中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AbstractBeanFactoryBasedTargetSource` Base class for `TargetSource` implementations that are based on a Spring `BeanFactory`, delegating to Spring-managed bean instances.
    `class` | `AbstractLazyCreationTargetSource` `TargetSource` implementation that will lazily create a user-managed object.
    `class` | `AbstractPoolingTargetSource` Abstract base class for pooling `TargetSource` implementations which maintain a pool of target instances, acquiring and releasing a target object from the pool for each method invocation.
    `class` | `AbstractPrototypeBasedTargetSource` Base class for dynamic `TargetSource` implementations that create new prototype bean instances to support a pooling or new-instance-per-invocation strategy.
    `class` | `CommonsPool2TargetSource` `TargetSource` implementation that holds objects in a configurable Apache Commons2 Pool.
    `class` | `EmptyTargetSource` Canonical `TargetSource` when there is no target (or just the target class known), and behavior is supplied by interfaces and advisors only.
    `class` | `HotSwappableTargetSource` `TargetSource` implementation that caches a local target object, but allows the target to be swapped while the application is running.
    `class` | `LazyInitTargetSource` `TargetSource` that lazily accesses a singleton bean from a `BeanFactory`.
    `class` | `PrototypeTargetSource` `TargetSource` implementation that creates a new instance of the target bean for each request, destroying each instance on release (after each request).
    `class` | `SimpleBeanTargetSource` Simple `TargetSource` implementation, freshly obtaining the specified target bean from its containing Spring `BeanFactory`.
    `class` | `SingletonTargetSource` Implementation of the `TargetSource` interface that holds a given object.
    `class` | `ThreadLocalTargetSource` Alternative to an object pool.

  - ### org.springframework.aop.target.dynamic中TargetSource的使用

    实现TargetSource的org.springframework.aop.target.dynamic中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `AbstractRefreshableTargetSource` Abstract `TargetSource` implementation that wraps a refreshable target object.
    `class` | `BeanFactoryRefreshableTargetSource` Refreshable TargetSource that fetches fresh target beans from a BeanFactory.