クラス FieldRetrievingFactoryBean

java.lang.ObjectSE
org.springframework.beans.factory.config.FieldRetrievingFactoryBean
実装されたすべてのインターフェース:
AwareBeanClassLoaderAwareBeanNameAwareFactoryBean<ObjectSE>InitializingBean

public class FieldRetrievingFactoryBean extends ObjectSE implements FactoryBean<ObjectSE>, BeanNameAware, BeanClassLoaderAware, InitializingBean
静的または非静的フィールド値を取得する FactoryBean

通常、パブリックの静的な最終定数を取得するために使用されます。使用例:

 // standard definition for exposing a static field, specifying the "staticField" property
 <bean id="myField" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
   <property name="staticField" value="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
 </bean>

 // convenience version that specifies a static field pattern as bean name
 <bean id="java.sql.Connection.TRANSACTION_SERIALIZABLE"
       class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"/>
 

Spring 2.0 を使用している場合は、パブリック静的フィールドに次のスタイルの構成を使用することもできます。

<util:constant static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
導入:
1.1
作成者:
Juergen Hoeller
関連事項:
  • フィールドサマリー

    インターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド

    OBJECT_TYPE_ATTRIBUTE
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。
    このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。
    この FactoryBean が作成するオブジェクトの型、または事前に不明な場合は null を返します。
    フィールドが定義されているターゲットクラスを返します。
    取得するフィールドの名前を返します。
    フィールドが定義されているターゲットオブジェクトを返します。
    boolean
    このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    "targetClass" も "targetObject" も "targetField" も指定されていない場合、この FieldRetrievingFactoryBean の Bean 名は "staticField" パターンとして解釈されます。
    void
    取得する完全修飾静的フィールド名を設定します。
    void
    setTargetClass(ClassSE<?> targetClass)
    フィールドが定義されているターゲットクラスを設定します。
    void
    取得するフィールドの名前を設定します。
    void
    フィールドが定義されているターゲットオブジェクトを設定します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • FieldRetrievingFactoryBean

      public FieldRetrievingFactoryBean()
  • メソッドの詳細

    • setTargetClass

      public void setTargetClass(@Nullable ClassSE<?> targetClass)
      フィールドが定義されているターゲットクラスを設定します。ターゲットフィールドが静的な場合にのみ必要です。それ以外の場合は、ターゲットオブジェクトを指定する必要があります。
      関連事項:
    • getTargetClass

      @Nullable public ClassSE<?> getTargetClass()
      フィールドが定義されているターゲットクラスを返します。
    • setTargetObject

      public void setTargetObject(@Nullable ObjectSE targetObject)
      フィールドが定義されているターゲットオブジェクトを設定します。ターゲットフィールドが静的でない場合にのみ必要です。それ以外の場合は、ターゲットクラスで十分です。
      関連事項:
    • getTargetObject

      @Nullable public ObjectSE getTargetObject()
      フィールドが定義されているターゲットオブジェクトを返します。
    • setTargetField

      public void setTargetField(@Nullable StringSE targetField)
      取得するフィールドの名前を設定します。設定されているターゲットオブジェクトに応じて、静的フィールドまたは非静的フィールドを参照します。
      関連事項:
    • getTargetField

      @Nullable public StringSE getTargetField()
      取得するフィールドの名前を返します。
    • setStaticField

      public void setStaticField(StringSE staticField)
      取得する完全修飾静的フィールド名を設定します。例: "example.MyExampleClass.MY_EXAMPLE_FIELD"。targetClass と targetField を指定する代わりの便利な方法。
      関連事項:
    • setBeanName

      public void setBeanName(StringSE beanName)
      "targetClass" も "targetObject" も "targetField" も指定されていない場合、この FieldRetrievingFactoryBean の Bean 名は "staticField" パターンとして解釈されます。これにより、ID/ 名前だけで簡潔な Bean 定義が可能になります。
      次で指定:
      インターフェース BeanNameAwaresetBeanName 
      パラメーター:
      beanName - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • afterPropertiesSet

      public void afterPropertiesSet() throws ClassNotFoundExceptionSE, NoSuchFieldExceptionSE
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      例外:
      ClassNotFoundExceptionSE
      NoSuchFieldExceptionSE
    • getObject

      @Nullable public ObjectSE getObject() throws IllegalAccessExceptionSE
      インターフェースからコピーされた説明: FactoryBean
      このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。

      BeanFactory と同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。

      この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する FactoryBeanNotInitializedException をスローします。

      Spring 2.0 以降、FactoryBeans は null オブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。

      次で指定:
      インターフェース FactoryBean<ObjectSE>getObject 
      戻り値:
      Bean のインスタンス (null にすることができます)
      例外:
      IllegalAccessExceptionSE
      関連事項:
    • getObjectType

      @Nullable public ClassSE<?> getObjectType()
      インターフェースからコピーされた説明: FactoryBean
      この FactoryBean が作成するオブジェクトの型、または事前に不明な場合は null を返します。

      これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。

      シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。

      このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。

      注意 : オートワイヤーは、ここで null を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。

      次で指定:
      インターフェース FactoryBean<ObjectSE>getObjectType 
      戻り値:
      この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は null 
      関連事項:
    • isSingleton

      public boolean isSingleton()
      インターフェースからコピーされた説明: FactoryBean
      このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?

      注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、getObject() から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true を返さないでください。

      FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。

      注意 false を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張 SmartFactoryBean インターフェースの実装は、SmartFactoryBean.isPrototype() メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな FactoryBean 実装は、isSingleton() 実装が false を返す場合、常に独立したインスタンスを返すと単純に想定されます。

      FactoryBean は通常シングルトンインスタンスを管理するため、デフォルトの実装は true を返します。

      次で指定:
      インターフェース FactoryBean<ObjectSE>isSingleton 
      戻り値:
      公開されたオブジェクトがシングルトンかどうか
      関連事項: