クラス LazyInitTargetSource

実装されたすべてのインターフェース:
SerializableSETargetClassAwareTargetSourceAwareBeanFactoryAware

public class LazyInitTargetSource extends AbstractBeanFactoryBasedTargetSource
BeanFactory からシングルトン Bean に遅延アクセスする TargetSource

初期化時にプロキシリファレンスが必要ですが、実際のターゲットオブジェクトは最初に使用するまで初期化しない場合に便利です。ターゲット Bean が ApplicationContext (BeanFactory は、先行してシングルトン Bean のインスタンス化を事前に行っています) で定義されている場合は、"lazy-init" とマークされている必要があります。マークされていない場合は、起動時に前述の ApplicationContext (または BeanFactory) によってインスタンス化されます。

例:

 <bean id="serviceTarget" class="example.MyService" lazy-init="true">
   ...
 </bean>

 <bean id="service" class="org.springframework.aop.framework.ProxyFactoryBean">
   <property name="targetSource">
     <bean class="org.springframework.aop.target.LazyInitTargetSource">
       <property name="targetBeanName"><idref local="serviceTarget"/></property>
     </bean>
   </property>
 </bean>
"serviceTarget" Bean は、"service" プロキシのメソッドが呼び出されるまで初期化されません。

サブクラスはこのクラスを継承し、postProcessTargetObject(Object) をオーバーライドして、ターゲットオブジェクトが最初にロードされたときに追加の処理を実行できます。

導入:
1.1.4
作成者:
Juergen Hoeller, Rob Harrop
関連事項:
  • コンストラクターの詳細

    • LazyInitTargetSource

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

    • getTarget

      public ObjectSE getTarget() throws BeansException
      インターフェースからコピーされた説明: TargetSource
      ターゲットインスタンスを返します。AOP フレームワークが AOP メソッド呼び出しの「ターゲット」を呼び出す直前に呼び出されます。
      戻り値:
      ジョインポイントを含むターゲットオブジェクト、または実際のターゲットインスタンスがない場合は null 
      例外:
      BeansException
    • postProcessTargetObject

      protected void postProcessTargetObject(ObjectSE targetObject)
      サブクラスはこのメソッドをオーバーライドして、最初にロードされたときにターゲットオブジェクトに対して追加の処理を実行できます。
      パラメーター:
      targetObject - インスタンス化されたばかりのターゲットオブジェクト (そして構成された)