程序包 infra.aop.target

类 AbstractBeanFactoryTargetSource

java.lang.Object
infra.aop.target.AbstractBeanFactoryTargetSource
所有已实现的接口:
TargetClassAware, TargetSource, infra.beans.factory.Aware, infra.beans.factory.BeanFactoryAware, Serializable
直接已知子类:
AbstractPrototypeTargetSource, LazyInitTargetSource, SimpleBeanTargetSource

public abstract class AbstractBeanFactoryTargetSource extends Object implements TargetSource, infra.beans.factory.BeanFactoryAware, Serializable
Base class for TargetSource implementations that are based on a BeanFactory, delegating to ioc-managed bean instances.

Subclasses can create prototype instances or lazily access a singleton target, for example. See AbstractPrototypeTargetSource's subclasses for concrete strategies.

BeanFactory-based TargetSources are serializable. This involves disconnecting the current target and turning into a SingletonTargetSource.

从以下版本开始:
3.0
作者:
Juergen Hoeller, Rod Johnson, TODAY 2021/2/1 20:38
另请参阅:
  • 字段详细资料

    • serialVersionUID

      private static final long serialVersionUID
      另请参阅:
    • logger

      protected final transient infra.logging.Logger logger
    • targetBeanName

      private String targetBeanName
      Name of the target bean we will create on each invocation.
    • targetClass

      private volatile Class<?> targetClass
      Class of the target.
    • beanFactory

      private infra.beans.factory.BeanFactory beanFactory
      BeanFactory that owns this TargetSource. We need to hold onto this reference so that we can create new prototype instances as necessary.
  • 构造器详细资料

    • AbstractBeanFactoryTargetSource

      public AbstractBeanFactoryTargetSource()
  • 方法详细资料

    • setTargetBeanName

      public void setTargetBeanName(String targetBeanName)
      Set the name of the target bean in the factory.

      The target bean should not be a singleton, else the same instance will always be obtained from the factory, resulting in the same behavior as provided by SingletonTargetSource.

      参数:
      targetBeanName - name of the target bean in the BeanFactory that owns this interceptor
      另请参阅:
    • getTargetBeanName

      public String getTargetBeanName()
      Return the name of the target bean in the factory.
    • setTargetClass

      public void setTargetClass(Class<?> targetClass)
      Specify the target class explicitly, to avoid any kind of access to the target bean (for example, to avoid initialization of a FactoryBean instance).

      Default is to detect the type automatically, through a getType call on the BeanFactory (or even a full getBean call as fallback).

    • setBeanFactory

      public void setBeanFactory(infra.beans.factory.BeanFactory beanFactory)
      Set the owning BeanFactory. We need to save a reference so that we can use the getBean method on every invocation.
      指定者:
      setBeanFactory 在接口中 infra.beans.factory.BeanFactoryAware
    • getBeanFactory

      public infra.beans.factory.BeanFactory getBeanFactory()
      Return the owning BeanFactory.
    • getTargetClass

      public Class<?> getTargetClass()
      从接口复制的说明: TargetSource
      Return the type of targets returned by this TargetSource.

      Can return null, although certain usages of a TargetSource might just work with a predetermined target class.

      指定者:
      getTargetClass 在接口中 TargetClassAware
      指定者:
      getTargetClass 在接口中 TargetSource
      返回:
      the type of targets returned by this TargetSource
    • isStatic

      public boolean isStatic()
      从接口复制的说明: TargetSource
      Will all calls to TargetSource.getTarget() return the same object?

      In that case, there will be no need to invoke TargetSource.releaseTarget(Object), and the AOP framework can cache the return value of TargetSource.getTarget().

      The default implementation returns false.

      指定者:
      isStatic 在接口中 TargetSource
      返回:
      true if the target is immutable
      另请参阅:
    • releaseTarget

      public void releaseTarget(Object target) throws Exception
      从接口复制的说明: TargetSource
      Release the given target object obtained from the TargetSource.getTarget() method, if any.

      The default implementation is empty.

      指定者:
      releaseTarget 在接口中 TargetSource
      参数:
      target - object obtained from a call to TargetSource.getTarget()
      抛出:
      Exception - if the object can't be released
    • copyFrom

      protected void copyFrom(AbstractBeanFactoryTargetSource other)
      Copy configuration from the other AbstractBeanFactoryBasedTargetSource object. Subclasses should override this if they wish to expose it.
      参数:
      other - object to copy configuration from
    • equals

      public boolean equals(Object other)
      覆盖:
      equals 在类中 Object
    • hashCode

      public int hashCode()
      覆盖:
      hashCode 在类中 Object
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object