クラス SchedulerFactoryBean
- 実装されているすべてのインターフェース:
Aware、BeanNameAware、DisposableBean、FactoryBean<Scheduler>、InitializingBean、ApplicationContextAware、Lifecycle、Phased、ResourceLoaderAware、SmartLifecycle
Scheduler を作成および構成し、そのライフサイクルを Spring アプリケーションコンテキストの一部として管理し、依存性注入のための Bean 参照としてスケジューラを公開する FactoryBean。JobDetails、カレンダー、トリガーの登録を可能にし、初期化時にスケジューラーを自動的に開始し、破棄時にスケジューラーをシャットダウンします。起動時にジョブの静的登録のみが必要なシナリオでは、アプリケーションコードでスケジューラインスタンス自体にアクセスする必要はありません。
実行時にジョブを動的に登録するには、この SchedulerFactoryBean への Bean 参照を使用して、Quartz スケジューラ(org.quartz.Scheduler)に直接アクセスします。これにより、新しいジョブとトリガーを作成したり、スケジューラ全体を制御および監視したりできます。
繰り返し実行間で共有される TimerTask インスタンスを使用するタイマーとは対照的に、Quartz は実行ごとに新しいジョブをインスタンス化することに注意してください。JobDetail 記述子のみが共有されます。
永続的なジョブを使用する場合は、Spring で管理された(またはプレーンな JTA)トランザクション内でスケジューラのすべての操作を実行することを強くお勧めします。そうでなければ、データベースのロックは適切に機能せず、壊れる可能性さえあります。(詳細については、setDataSource javadoc を参照してください。)
トランザクション実行を実現するための推奨される方法は、ビジネスファサードレベルで宣言型トランザクションの境界を定めることです。これは、これらのスコープ内で実行されるスケジューラー操作に自動的に適用されます。または、スケジューラ自体にトランザクションアドバイスを追加することもできます。
Spring 4.1 の時点で、Quartz 2.1.4 以降と互換性があります。
- 導入:
- 18.02.2004
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールドクラス org.springframework.scheduling.quartz.SchedulerAccessor から継承されたフィールド
logger, resourceLoaderインターフェース org.springframework.beans.factory.FactoryBean から継承されたフィールド
OBJECT_TYPE_ATTRIBUTEインターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidprotected SchedulercreateScheduler(SchedulerFactory schedulerFactory, StringSE schedulerName) 指定されたファクトリとスケジューラー名のスケジューラーインスタンスを作成します。voiddestroy()Bean ファクトリシャットダウン時に Quartz スケジューラをシャットダウンし、スケジュールされたすべてのジョブを停止します。static DataSourceSELocalDataSourceJobStoreで使用される、現在構成されている Quartz スケジューラのDataSourceSE を返します。static DataSourceSELocalDataSourceJobStoreで使用される、現在構成されている Quartz スケジューラの非トランザクションDataSourceSE を返します。static ResourceLoaderResourceLoaderClassLoadHelperで使用される、現在構成されている Quartz スケジューラのResourceLoaderを返します。static ExecutorSELocalTaskExecutorThreadPoolで使用される、現在構成されている Quartz スケジューラのExecutorSE を返します。このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。この FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。intgetPhase()このスケジューラーが開始および停止されるフェーズを返します。操作するスケジューラを決定するテンプレートメソッド。booleanこのスケジューラーが自動起動用に構成されているかどうかを返します。booleanこのコンポーネントが現在実行されているかどうかを確認します。booleanこのファクトリによって管理されるオブジェクトはシングルトンですか? つまり、FactoryBean.getObject()は常に同じオブジェクト(キャッシュ可能な参照)を返しますか?voidsetApplicationContext(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。voidsetApplicationContextSchedulerContextKey(StringSE applicationContextSchedulerContextKey) SchedulerContext で公開するApplicationContext参照のキーを設定します (例: "applicationContext" )。voidsetAutoStartup(boolean autoStartup) 初期化後にスケジューラーを自動的に開始するかどうかを設定します。voidsetBeanName(StringSE name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。voidsetConfigLocation(Resource configLocation) Quartz プロパティ構成ファイルの場所を、たとえばクラスパスリソース "classpath:quartz.properties" として設定します。voidsetDataSource(DataSourceSE dataSource) スケジューラが使用するデフォルトのDataSourceSE を設定します。voidsetExposeSchedulerInRepository(boolean exposeSchedulerInRepository) QuartzSchedulerRepositoryで Spring 管理のSchedulerインスタンスを公開するかどうかを設定します。voidsetJobFactory(JobFactory jobFactory) このスケジューラに使用する QuartzJobFactoryを設定します。voidsetNonTransactionalDataSource(DataSourceSE nonTransactionalDataSource) 非トランザクションアクセスに使用するDataSourceSE を設定します。voidsetPhase(int phase) このスケジューラーを開始および停止するフェーズを指定します。voidsetQuartzProperties(PropertiesSE quartzProperties) "org.quartz.threadPool.class" などの Quartz プロパティを設定します。voidsetSchedulerContextAsMap(MapSE<StringSE, ?> schedulerContextAsMap) 指定されたマップを介してスケジューラコンテキストにオブジェクトを登録します。voidsetSchedulerFactory(SchedulerFactory schedulerFactory) 使用する外部 QuartzSchedulerFactoryインスタンスを設定します。voidsetSchedulerFactoryClass(ClassSE<? extends SchedulerFactory> schedulerFactoryClass) 使用する QuartzSchedulerFactory実装を設定します。voidsetSchedulerName(StringSE schedulerName) org.quartz.scheduler.instanceNameプロパティの代わりに、SchedulerFactory を介して作成するスケジューラーの名前を設定します。voidsetStartupDelay(int startupDelay) 初期化後、スケジューラーを非同期で開始する前に待機する秒数を設定します。voidsetTaskExecutor(ExecutorSE taskExecutor) Spring 管理のExecutorSE を Quartz バックエンドとして使用するように設定します。voidsetWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown) シャットダウン時に実行中のジョブが完了するのを待つかどうかを設定します。voidstart()このコンポーネントを起動します。protected voidstartScheduler(Scheduler scheduler, int startupDelay) "startupDelay" 設定を考慮して、Quartz スケジューラを起動します。voidstop()このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。クラス org.springframework.scheduling.quartz.SchedulerAccessor から継承されたメソッド
registerJobsAndTriggers, registerListeners, setCalendars, setGlobalJobListeners, setGlobalTriggerListeners, setJobDetails, setJobSchedulingDataLocation, setJobSchedulingDataLocations, setOverwriteExistingJobs, setResourceLoader, setSchedulerListeners, setTransactionManager, setTriggersクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
stop
フィールドの詳細
コンストラクターの詳細
SchedulerFactoryBean
public SchedulerFactoryBean()
メソッドの詳細
getConfigTimeResourceLoader
ResourceLoaderClassLoadHelperで使用される、現在構成されている Quartz スケジューラのResourceLoaderを返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeTaskExecutor
LocalTaskExecutorThreadPoolで使用される、現在構成されている Quartz スケジューラのExecutorSE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeDataSource
LocalDataSourceJobStoreで使用される、現在構成されている Quartz スケジューラのDataSourceSE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
getConfigTimeNonTransactionalDataSource
LocalDataSourceJobStoreで使用される、現在構成されている Quartz スケジューラの非トランザクションDataSourceSE を返します。このインスタンスは、対応するスケジューラの初期化の前に設定され、直後にリセットされます。構成時にのみ使用できます。
setSchedulerFactory
使用する外部 QuartzSchedulerFactoryインスタンスを設定します。デフォルトは内部
StdSchedulerFactoryインスタンスです。このメソッドが呼び出されると、setSchedulerFactoryClass(java.lang.Class<? extends org.quartz.SchedulerFactory>)によって指定されたクラス、およびsetConfigLocation(org.springframework.core.io.Resource)、setQuartzProperties(java.util.Properties)、setTaskExecutor(java.util.concurrent.Executor)またはsetDataSource(javax.sql.DataSource)によって指定された設定がオーバーライドされます。注意 : 外部で提供される
SchedulerFactoryインスタンスでは、setConfigLocation(org.springframework.core.io.Resource)やsetQuartzProperties(java.util.Properties)などのローカル設定は、ここでSchedulerFactoryBeanで無視され、外部SchedulerFactoryインスタンスが独自に初期化されることが期待されます。setSchedulerFactoryClass
使用する QuartzSchedulerFactory実装を設定します。デフォルトは
StdSchedulerFactoryクラスで、quartz.jarから標準のquartz.propertiesを読み取ります。カスタム Quartz プロパティを適用するには、このローカルSchedulerFactoryBeanインスタンスで"configLocation"や"quartzProperties"などを指定します。setSchedulerName
org.quartz.scheduler.instanceNameプロパティの代わりに、SchedulerFactory を介して作成するスケジューラーの名前を設定します。指定しない場合、名前は Quartz プロパティ(
org.quartz.scheduler.instanceName)または宣言されたSchedulerFactoryBeanBean 名からフォールバックとして取得されます。setConfigLocation
Quartz プロパティ構成ファイルの場所を、たとえばクラスパスリソース "classpath:quartz.properties" として設定します。メモ: 必要なすべてのプロパティがこの Bean を介してローカルで指定されている場合、または Quartz のデフォルト構成に依存している場合は省略できます。
setQuartzProperties
"org.quartz.threadPool.class" などの Quartz プロパティを設定します。Quartz プロパティ構成ファイルの値をオーバーライドするため、またはローカルで必要なすべてのプロパティを指定するために使用できます。
setTaskExecutor
Spring 管理のExecutorSE を Quartz バックエンドとして使用するように設定します。Quartz SPI を介してスレッドプールとして公開されます。ローカルの JDK ThreadPoolExecutor または CommonJ WorkManager を Quartz バックエンドとして割り当て、Quartz の手動スレッド作成を回避するために使用できます。
デフォルトでは、Quartz SimpleThreadPool が使用され、対応する Quartz プロパティを通じて構成されます。
setDataSource
スケジューラが使用するデフォルトのDataSourceSE を設定します。メモ: これが設定されている場合、意味のない二重構成を回避するために、Quartz 設定ではジョブストア "dataSource" を定義しないでください。また、"org.quartz.jobStore.class" プロパティも定義しないでください。(Spring の
LocalDataSourceJobStoreを明示的に定義することもできますが、このメソッドを使用する場合はこれがデフォルトです。)Spring 固有の Quartz のサブクラス JobStoreCMT が使用されます。Scheduler のすべての操作は Spring 管理 (またはプレーン JTA) トランザクション内で実行することを強くお勧めします。そうしないと、データベースロックが適切に機能せず、破損する可能性もあります (たとえば、トランザクションなしで Oracle のロックを取得しようとする場合)。
トランザクションおよび非トランザクションの両方の DataSource アクセスをサポートします。非 XA DataSource およびローカル Spring トランザクションの場合、単一の DataSource 引数で十分です。XA DataSource およびグローバル JTA トランザクションの場合、SchedulerFactoryBean の "nonTransactionalDataSource" プロパティを設定し、グローバルトランザクションに参加しない非 XA DataSource を渡す必要があります。
setNonTransactionalDataSource
非トランザクションアクセスに使用するDataSourceSE を設定します。これは、デフォルトの DataSource が常にトランザクションに参加する XA DataSource である場合にのみ必要です。このようなシナリオでは、その DataSource の非 XA バージョンを "nonTransactionalDataSource" として指定する必要があります。
これは、ローカル DataSource インスタンスおよび Spring トランザクションには関係ありません。単一のデフォルト DataSource を "dataSource" として指定するだけで十分です。
setSchedulerContextAsMap
指定されたマップを介してスケジューラコンテキストにオブジェクトを登録します。これらのオブジェクトは、このスケジューラで実行されるすべてのジョブで使用できます。メモ: JobDetail がデータベースに保持される永続的なジョブを使用する場合は、Spring 管理の Bean または ApplicationContext 参照を JobDataMap ではなく SchedulerContext に配置しないでください。
- パラメーター:
schedulerContextAsMap- String キーと任意のオブジェクトを値として持つ Map (たとえば、Spring に管理された Bean)- 関連事項:
setApplicationContextSchedulerContextKey
public void setApplicationContextSchedulerContextKey(StringSE applicationContextSchedulerContextKey) SchedulerContext で公開するApplicationContext参照のキーを設定します (例: "applicationContext" )。デフォルトはなしです。Spring ApplicationContext で実行している場合にのみ適用されます。メモ: JobDetail がデータベースに保持される永続ジョブを使用する場合は、ApplicationContext 参照を JobDataMap ではなく SchedulerContext に配置してください。
QuartzJobBean の場合、参照は Bean プロパティとしてジョブインスタンスに適用されます。そのシナリオでは、"applicationContext" 属性 は "setApplicationContext" メソッドに対応します。
Quartz 自体がジョブのライフサイクルを担当するため、ApplicationContextAware のような BeanFactory コールバックインターフェースは Quartz ジョブインスタンスに自動的に適用されないことに注意してください。
setJobFactory
このスケジューラに使用する QuartzJobFactoryを設定します。デフォルトは Spring の
AdaptableJobFactoryで、RunnableSE オブジェクトと標準の QuartzJobインスタンスをサポートします。このデフォルトはローカルスケジューラにのみ適用され、RemoteScheduler には適用されないことに注意してください(カスタム JobFactory の設定は Quartz ではサポートされていません)。ここで Spring の
SpringBeanJobFactoryのインスタンスを指定して(通常は内部 Bean 定義として)、指定したジョブデータマップとスケジューラコンテキストからジョブの Bean プロパティを自動的に設定します。- 導入:
- 2.0
- 関連事項:
setAutoStartup
public void setAutoStartup(boolean autoStartup) 初期化後にスケジューラーを自動的に開始するかどうかを設定します。デフォルトは "true" です。手動で起動できるようにするには、これを "false" に設定します。
isAutoStartup
public boolean isAutoStartup()このスケジューラーが自動起動用に構成されているかどうかを返します。"true" の場合、スケジューラーは、コンテキストがリフレッシュされた後、および開始遅延(ある場合)の後に開始されます。setPhase
public void setPhase(int phase) このスケジューラーを開始および停止するフェーズを指定します。起動順序は最低から最高に進み、シャットダウン順序はその逆です。デフォルトでは、この値はInteger.MAX_VALUEです。つまり、このスケジューラーはできるだけ遅く開始し、できるだけ早く停止します。- 導入:
- 3.0
getPhase
public int getPhase()このスケジューラーが開始および停止されるフェーズを返します。- 次で指定:
- インターフェース
PhasedのgetPhase - 次で指定:
- インターフェース
SmartLifecycleのgetPhase - 関連事項:
setStartupDelay
public void setStartupDelay(int startupDelay) 初期化後、スケジューラーを非同期で開始する前に待機する秒数を設定します。デフォルトは 0 です。これは、この Bean の初期化時に即時同期起動を意味します。これを 10 または 20 秒に設定することは、アプリケーション全体が起動する前にジョブを実行する必要がない場合に意味があります。
setExposeSchedulerInRepository
public void setExposeSchedulerInRepository(boolean exposeSchedulerInRepository) QuartzSchedulerRepositoryで Spring 管理のSchedulerインスタンスを公開するかどうかを設定します。Spring が管理するスケジューラは通常、Spring コンテキスト内でのアクセスのみを目的としているため、デフォルトは "false" です。スケジューラをグローバルに公開するには、このフラグを "true" に切り替えます。この動作に依存する既存の Spring アプリケーションがない限り、これはお勧めしません。このようなグローバルな露出は、以前の Spring バージョンでは偶発的なデフォルトであったことに注意してください。これは Spring 2.5.6 で修正されています。
setWaitForJobsToCompleteOnShutdown
public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown) シャットダウン時に実行中のジョブが完了するのを待つかどうかを設定します。デフォルトは "false" です。シャットダウンフェーズが長くなる代わりにジョブを完全に完了したい場合は、これを "true" に切り替えます。
setBeanName
インターフェースからコピーされた説明:BeanNameAwareこの Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAwareのsetBeanName - パラメーター:
name- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
setApplicationContext
インターフェースからコピーされた説明:ApplicationContextAwareこのオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)およびMessageSourceAwareの後に呼び出されます(該当する場合)。- 次で指定:
- インターフェース
ApplicationContextAwareのsetApplicationContext - パラメーター:
applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
afterPropertiesSet
インターフェースからコピーされた説明:InitializingBeanすべての Bean プロパティを設定し、BeanFactoryAware、ApplicationContextAwareなどを満たした後、包含BeanFactoryによって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet - 例外:
ExceptionSE- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
createScheduler
protected Scheduler createScheduler(SchedulerFactory schedulerFactory, @Nullable StringSE schedulerName) throws SchedulerException 指定されたファクトリとスケジューラー名のスケジューラーインスタンスを作成します。afterPropertiesSet()によって呼び出されます。デフォルトの実装では、SchedulerFactory の
getSchedulerメソッドを呼び出します。カスタムスケジューラを作成するためにオーバーライドできます。- パラメーター:
schedulerFactory- スケジューラを作成するファクトリschedulerName- 作成するスケジューラの名前- 戻り値:
- スケジューラインスタンス
- 例外:
SchedulerException- Quartz メソッドによってスローされた場合- 関連事項:
startScheduler
"startupDelay" 設定を考慮して、Quartz スケジューラを起動します。- パラメーター:
scheduler- 開始するスケジューラstartupDelay- スケジューラを非同期で開始する前に待機する秒数- 例外:
SchedulerException
getScheduler
クラスからコピーされた説明:SchedulerAccessor操作するスケジューラを決定するテンプレートメソッド。サブクラスによって実装されます。- 次で指定:
- クラス
SchedulerAccessorのgetScheduler
getObject
インターフェースからコピーされた説明:FactoryBeanこのファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。BeanFactoryと同様に、これにより、シングルトンとプロトタイプの両方の設計パターンをサポートできます。この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する
FactoryBeanNotInitializedExceptionをスローします。FactoryBeans は
nullオブジェクトを返すことができます。Bean ファクトリはこれを通常の値と見なし、この場合はFactoryBeanNotInitializedExceptionをスローしません。ただし、FactoryBean 実装では、必要に応じてFactoryBeanNotInitializedException自体をスローすることが推奨されます。- 次で指定:
- インターフェース
FactoryBean<Scheduler>のgetObject - 戻り値:
- Bean のインスタンス (
nullにすることができます) - 関連事項:
getObjectType
インターフェースからコピーされた説明:FactoryBeanこの FactoryBean が作成するオブジェクトの型を返します。事前にわからない場合はnullを返します。これにより、たとえばオートワイヤーなどで、オブジェクトをインスタンス化せずに特定の型の Bean を確認できます。
シングルトンオブジェクトを作成する実装の場合、このメソッドはシングルトンの作成を可能な限り回避し、事前に型を推定する必要があります。プロトタイプの場合は、ここで意味のある型を返すことも推奨されます。
このメソッドは、この FactoryBean が完全に初期化される前に呼び出すことができます。初期化中に作成された状態に依存しないでください。もちろん、利用可能な場合はそのような状態を引き続き使用できます。
注意 : オートワイヤーは、ここで
nullを返す FactoryBeans を単に無視します。FactoryBean の現在の状態を使用して、このメソッドを適切に実装することを強くお勧めします。- 次で指定:
- インターフェース
FactoryBean<Scheduler>の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<Scheduler>のisSingleton - 戻り値:
- 公開されたオブジェクトがシングルトンかどうか
- 関連事項:
start
インターフェースからコピーされた説明:Lifecycleこのコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これにより、自動起動しないコンポーネントも含め、適用されるすべてのコンポーネントにハードスタートシグナルが伝播されます。
- 次で指定:
- インターフェース
Lifecycleのstart - 例外:
SchedulingException- 関連事項:
stop
インターフェースからコピーされた説明:Lifecycleこのメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycleとそのstop(Runnable)バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
LifecycleBean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
- 次で指定:
- インターフェース
Lifecycleのstop - 例外:
SchedulingException- 関連事項:
isRunning
インターフェースからコピーされた説明:Lifecycleこのコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
trueを返します。- 次で指定:
- インターフェース
LifecycleのisRunning - 戻り値:
- コンポーネントが現在実行中かどうか
- 例外:
SchedulingException
destroy
Bean ファクトリシャットダウン時に Quartz スケジューラをシャットダウンし、スケジュールされたすべてのジョブを停止します。- 次で指定:
- インターフェース
DisposableBeanのdestroy - 例外:
SchedulerException