クラス 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 class
Quartz 指定されたメソッドを呼び出すジョブ実装。static class
StatefulJob インターフェースを実装する 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) Beanclass loader
SE を 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
コンストラクターの詳細
MethodInvokingJobDetailFactoryBean
public MethodInvokingJobDetailFactoryBean()
メソッドの詳細
setName
ジョブの名前を設定します。デフォルトは、この FactoryBean の Bean 名です。
setGroup
ジョブのグループを設定します。デフォルトは、スケジューラのデフォルトグループです。
setConcurrent
public void setConcurrent(boolean concurrent) 複数のジョブを同時に実行するかどうかを指定します。同時ジョブを実行したくない場合の動作は、@PersistJobDataAfterExecution
マーカーと@DisallowConcurrentExecution
マーカーを追加することで実現されます。ステートフルジョブとステートレスジョブの詳細については、こちらを参照してください。デフォルト設定では、ジョブを同時に実行します。
setTargetBeanName
Spring 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
インターフェースからコピーされた説明:BeanClassLoaderAware
Beanclass loader
SE を 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
をスローします。FactoryBeans は
null
オブジェクトを返すことができます。Bean ファクトリはこれを通常の値と見なし、この場合はFactoryBeanNotInitializedException
をスローしません。ただし、FactoryBean 実装では、必要に応じてFactoryBeanNotInitializedException
自体をスローすることが推奨されます。- 次で指定:
- インターフェース
FactoryBean<JobDetail>
のgetObject
- 戻り値:
- Bean のインスタンス (
null
にすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBean
この FactoryBean が作成するオブジェクトの型、または事前に不明な場合はnull
を返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成する実装の場合、このメソッドはシングルトンの作成を可能な限り回避し、事前に型を推定する必要があります。プロトタイプの場合は、ここで意味のある型を返すことも推奨されます。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
null
を返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<JobDetail>
の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<JobDetail>
のisSingleton
- 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項: