クラス MethodInvokingJobDetailFactoryBean
- 実装されているすべてのインターフェース:
- Aware、- BeanClassLoaderAware、- BeanFactoryAware、- BeanNameAware、- FactoryBean<JobDetail>、- InitializingBean
JobDetail オブジェクトを公開する FactoryBean。Spring で管理されているターゲット Bean で既存のサービスメソッドを呼び出すだけの 1 行の Quartz ジョブを実装する必要がありません。MethodInvoker 基本クラスから "targetObject" や "targetMethod" などの共通構成プロパティを継承し、"targetBeanName" プロパティを介してターゲット Bean を名前で検索するサポートを追加します ( "targetObject" を直接指定する代わりに、非シングルトンターゲットオブジェクトを許可します)。
"concurrent" プロパティにより、同時に実行されているジョブと現在実行されていないジョブの両方をサポートします。この MethodInvokingJobDetailFactoryBean によって作成されたジョブは、デフォルトで揮発性と耐久性があります(Quartz の用語によると)。
注: JobDetails この FactoryBean 経由で作成、シリアライズして永続的なジョブのストアに適していないではありません。永続的なジョブが特定のサービスメソッドに委譲されるようにする各ケースで、独自の Quartz ジョブをシンラッパーとして実装する必要があります。
Spring 4.1 の時点で、Quartz 2.1.4 以降と互換性があります。
- 導入:
- 18.02.2004
- 作成者:
- Juergen Hoeller, Alef Arendsen
- 関連事項:
- ネストされたクラスの要約ネストされたクラス修飾子と型クラス説明- static classQuartz 指定されたメソッドを呼び出すジョブ実装。- static classStatefulJob インターフェースを実装する MethodInvokingJob の拡張。
- フィールドのサマリー- クラス org.springframework.util.MethodInvoker から継承されたフィールド- targetClass- インターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド- OBJECT_TYPE_ATTRIBUTE
- コンストラクターの概要コンストラクター
- メソッドのサマリー修飾子と型メソッド説明- voidこのファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は- nullを返します。- ClassSE<?>- "targetBeanName"機能をサポートするためにオーバーライドされます。- "targetBeanName"機能をサポートするためにオーバーライドされます。- booleanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、- FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?- protected void- postProcessJobDetail- (JobDetail jobDetail) この FactoryBean によって公開される JobDetail を後処理するためのコールバック。- protected ClassSE<?>- resolveClassName- (StringSE className) 指定されたクラス名をクラスに解決します。- void- setBeanClassLoader- (ClassLoaderSE classLoader) Bean- class loaderSE を Bean インスタンスに提供するコールバック。- void- setBeanFactory- (BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。- void- setBeanName- (StringSE beanName) この Bean を作成した Bean ファクトリで Bean の名前を設定します。- void- setConcurrent- (boolean concurrent) 複数のジョブを同時に実行するかどうかを指定します。- voidジョブのグループを設定します。- voidジョブの名前を設定します。- void- setTargetBeanName- (StringSE targetBeanName) Spring BeanFactory でターゲット Bean の名前を設定します。- クラス org.springframework.beans.support.ArgumentConvertingMethodInvoker から継承されたメソッド- doFindMatchingMethod, findMatchingMethod, getDefaultTypeConverter, getTypeConverter, registerCustomEditor, setTypeConverter- クラス org.springframework.util.MethodInvoker から継承されたメソッド- getArguments, getPreparedMethod, getTargetMethod, getTypeDifferenceWeight, invoke, isPrepared, prepare, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObject
- コンストラクターの詳細- MethodInvokingJobDetailFactoryBeanpublic MethodInvokingJobDetailFactoryBean()
 
- メソッドの詳細- setNameジョブの名前を設定します。- デフォルトは、この FactoryBean の Bean 名です。 
- setGroupジョブのグループを設定します。- デフォルトは、スケジューラのデフォルトグループです。 
- setConcurrentpublic void setConcurrent- (boolean concurrent) 複数のジョブを同時に実行するかどうかを指定します。同時ジョブを実行したくない場合の動作は、- @PersistJobDataAfterExecutionマーカーと- @DisallowConcurrentExecutionマーカーを追加することで実現されます。ステートフルジョブとステートレスジョブの詳細については、こちらを参照してください。- デフォルト設定では、ジョブを同時に実行します。 
- setTargetBeanNameSpring BeanFactory でターゲット Bean の名前を設定します。- これは、 - "targetObject"を指定する代わりに、非シングルトン Bean を呼び出すことを可能にするものです。指定された "targetObject" および- "targetClass"の値は、この "targetBeanName" 設定の対応する効果を上書きすることに注意してください (つまり、Bean 型または Bean オブジェクトを静的に事前定義します)。
- setBeanNameインターフェースからコピーされた説明:- BeanNameAwareこの Bean を作成した Bean ファクトリで Bean の名前を設定します。- 通常の Bean プロパティの設定後、ただし - InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanNameAwareのsetBeanName
- パラメーター:
- beanName- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、- BeanFactoryUtils.originalBeanName(String)メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
 
- setBeanClassLoaderインターフェースからコピーされた説明:- BeanClassLoaderAwareBean- class loaderSE を Bean インスタンスに提供するコールバック。- 通常の Bean プロパティの設定後、ただし - InitializingBean's- InitializingBean.afterPropertiesSet()メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanClassLoaderAwareのsetBeanClassLoader
- パラメーター:
- classLoader- 所有クラスローダー
 
- setBeanFactoryインターフェースからコピーされた説明:- BeanFactoryAware所有ファクトリを Bean インスタンスに提供するコールバック。- 通常の Bean プロパティの設定後、ただし - InitializingBean.afterPropertiesSet()またはカスタム init-method などの初期化コールバックの前に呼び出されます。- 次で指定:
-  インターフェース BeanFactoryAwareのsetBeanFactory
- パラメーター:
- beanFactory- 所有 BeanFactory(非- null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
- 関連事項:
 
- resolveClassNameクラスからコピーされた説明:- MethodInvoker指定されたクラス名をクラスに解決します。- デフォルトの実装では、スレッドコンテキストクラスローダーを使用して - ClassUtils.forNameを使用します。- オーバーライド:
-  クラス MethodInvokerのresolveClassName
- パラメーター:
- className- 解決するクラス名
- 戻り値:
- 解決されたクラス
- 例外:
- ClassNotFoundExceptionSE- クラス名が無効だった場合
 
- afterPropertiesSetインターフェースからコピーされた説明:- InitializingBeanすべての Bean プロパティを設定し、- BeanFactoryAware、- ApplicationContextAwareなどを満たした後、包含- BeanFactoryによって呼び出されます。- このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。 - 次で指定:
-  インターフェース InitializingBeanのafterPropertiesSet
- 例外:
- ClassNotFoundExceptionSE
- NoSuchMethodExceptionSE
 
- postProcessJobDetailこの FactoryBean によって公開される JobDetail を後処理するためのコールバック。- デフォルトの実装は空です。サブクラスでオーバーライドできます。 - パラメーター:
- jobDetail- この FactoryBean によって準備された JobDetail
 
- getTargetClass- "targetBeanName"機能をサポートするためにオーバーライドされます。- オーバーライド:
-  クラス MethodInvokerのgetTargetClass
 
- getTargetObject- "targetBeanName"機能をサポートするためにオーバーライドされます。- オーバーライド:
-  クラス MethodInvokerのgetTargetObject
 
- getObjectインターフェースからコピーされた説明:- FactoryBeanこのファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。- BeanFactoryと同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。- この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する - FactoryBeanNotInitializedExceptionをスローします。- Spring 2.0 以降、FactoryBeans は - nullオブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。- 次で指定:
-  インターフェース FactoryBean<JobDetail>のgetObject
- 戻り値:
- Bean のインスタンス (nullにすることができます)
- 関連事項:
 
- getObjectTypeインターフェースからコピーされた説明:- FactoryBeanこの FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合は- nullを返します。- これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。 - シングルトンオブジェクトを作成している実装の場合、このメソッドはシングルトンの作成を可能な限り回避しようとします。むしろ、事前に型を推定する必要があります。プロトタイプの場合、ここで意味のある型を返すこともお勧めします。 - このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。 - 注意 : オートワイヤーは、ここで - nullを返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
-  インターフェース FactoryBean<JobDetail>のgetObjectType
- 戻り値:
-  この FactoryBean が作成するオブジェクトの型、または呼び出し時に不明な場合は null
- 関連事項:
 
- isSingletonpublic boolean isSingleton()インターフェースからコピーされた説明:- FactoryBeanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、- FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?- 注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、 - getObject()から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、- trueを返さないでください。- FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。 - 注意 : - falseを返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張- SmartFactoryBeanインターフェースの実装は、- SmartFactoryBean.isPrototype()メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな- FactoryBean実装は、- isSingleton()実装が- falseを返す場合、常に独立したインスタンスを返すと単純に想定されます。- FactoryBeanは通常シングルトンインスタンスを管理するため、デフォルトの実装では- trueが返されます。- 次で指定:
-  インターフェース FactoryBean<JobDetail>のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項: