クラス ScheduledAnnotationBeanPostProcessor
- 実装されたすべてのインターフェース:
EventListenerSE
、Aware
、BeanFactoryAware
、BeanNameAware
、BeanPostProcessor
、DestructionAwareBeanPostProcessor
、DisposableBean
、SmartInitializingSingleton
、MergedBeanDefinitionPostProcessor
、ApplicationContextAware
、ApplicationListener<ApplicationContextEvent>
、EmbeddedValueResolverAware
、Ordered
、ScheduledTaskHolder
TaskScheduler
によって呼び出される @Scheduled
でアノテーションされたメソッドを登録する Bean ポストプロセッサー。 このポストプロセッサーは、Spring の <task:annotation-driven>
XML 要素および @EnableScheduling
アノテーションによって自動的に登録されます。
コンテナー内の SchedulingConfigurer
インスタンスを自動検出し、使用するスケジューラのカスタマイズや、タスク登録 (Trigger
タスクの登録など) のきめ細かな制御を可能にします。完全な使用方法については、@EnableScheduling
javadoc を参照してください。
- 導入:
- 3.0
- 作成者:
- Mark Fisher, Juergen Hoeller, Chris Beams, Elizabeth Chatman, Victor Brown, Sam Brannen, Simon Basl é
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明static final StringSE
取得するTaskScheduler
Bean のデフォルト名: "taskScheduler"。protected final Log
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
コンストラクター説明デフォルトのScheduledAnnotationBeanPostProcessor
を作成します。指定されたScheduledTaskRegistrar
に委譲するScheduledAnnotationBeanPostProcessor
を作成します。方法の概要
修飾子と型メソッド説明void
シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。protected RunnableSE
createRunnable
(ObjectSE target, MethodSE method) 使用すべきではありません。protected RunnableSE
createRunnable
(ObjectSE target, MethodSE method, StringSE qualifier) 指定された Bean インスタンスのRunnable
SE を作成し、指定されたスケジュール済みメソッドを呼び出します。void
destroy()
Bean の破棄時に、包含BeanFactory
によって呼び出されます。int
getOrder()
このオブジェクトの順序値を取得します。Scheduled
メソッドおよびプログラムによるSchedulingConfigurer
インタラクションから、現在スケジュールされているすべてのタスクを返します。void
ContextRefreshedEvent
およびContextClosedEvent
に反応し、それぞれfinishRegistration()
を実行し、スケジュールされたタスクを早期にキャンセルします。postProcessAfterInitialization
(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean のafterPropertiesSet
またはカスタム init メソッドなど)の後に、このBeanPostProcessor
を新しい Bean インスタンスに適用します。void
postProcessBeforeDestruction
(ObjectSE bean, StringSE beanName) 指定された Bean インスタンスを破棄する前に、この BeanPostProcessor を適用します (たとえば、カスタム破棄コールバックを呼び出します)。postProcessBeforeInitialization
(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean のafterPropertiesSet
またはカスタム init メソッドなど)の前に、このBeanPostProcessor
を指定された新しい Bean インスタンスに適用します。void
postProcessMergedBeanDefinition
(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName) 指定された Bean の指定されたマージ済み Bean 定義を後処理します。protected void
processScheduled
(Scheduled scheduled, MethodSE method, ObjectSE bean) 指定された Bean 上で指定された@Scheduled
メソッド宣言を処理し、リアクティブメソッドと同期メソッドを区別しようとします。boolean
requiresDestruction
(ObjectSE bean) 指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。void
setApplicationContext
(ApplicationContext applicationContext) ApplicationContext
の設定はオプションです。設定すると、登録されたタスクはContextRefreshedEvent
フェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated()
時に発生します。void
setBeanFactory
(BeanFactory beanFactory) BeanFactory
を使用可能にすることはオプションです。設定しない場合、SchedulingConfigurer
Bean は自動検出されず、scheduler
を明示的に構成する必要があります。void
setBeanName
(StringSE beanName) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setEmbeddedValueResolver
(StringValueResolver resolver) StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。void
setScheduler
(ObjectSE scheduler) スケジュールされたメソッドを呼び出すTaskScheduler
、または TaskScheduler としてラップされるScheduledExecutorService
SE を設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.context.ApplicationListener から継承されたメソッド
supportsAsyncExecution
インターフェース org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor から継承されたメソッド
resetBeanDefinition
フィールドの詳細
DEFAULT_TASK_SCHEDULER_BEAN_NAME
取得するTaskScheduler
Bean のデフォルト名: "taskScheduler"。初期ルックアップは型ごとに行われることに注意してください。これは、コンテキストで複数のスケジューラ Bean が見つかった場合のフォールバックです。
- 導入:
- 4.2
- 関連事項:
logger
コンストラクターの詳細
ScheduledAnnotationBeanPostProcessor
public ScheduledAnnotationBeanPostProcessor()デフォルトのScheduledAnnotationBeanPostProcessor
を作成します。ScheduledAnnotationBeanPostProcessor
指定されたScheduledTaskRegistrar
に委譲するScheduledAnnotationBeanPostProcessor
を作成します。- パラメーター:
registrar
-@Scheduled
タスクを登録する ScheduledTaskRegistrar- 導入:
- 5.1
メソッドの詳細
getOrder
public int getOrder()インターフェースからコピーされた説明:Ordered
このオブジェクトの順序値を取得します。値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット
load-on-startup
の値に多少似ています)。同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
setScheduler
スケジュールされたメソッドを呼び出すTaskScheduler
、または TaskScheduler としてラップされるScheduledExecutorService
SE を設定します。指定されていない場合は、デフォルトのスケジューラ解決が適用されます。コンテキスト内で一意の
TaskScheduler
Bean を検索するか、それ以外の場合は "taskScheduler" という名前のTaskScheduler
Bean を検索します。同じ検索がScheduledExecutorService
SE Bean に対しても実行されます。どちらも解決できない場合は、レジストラ内にローカルのシングルスレッドのデフォルトスケジューラが作成されます。setEmbeddedValueResolver
インターフェースからコピーされた説明:EmbeddedValueResolverAware
StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。- 次で指定:
- インターフェース
EmbeddedValueResolverAware
のsetEmbeddedValueResolver
setBeanName
インターフェースからコピーされた説明:BeanNameAware
この Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
beanName
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
setBeanFactory
BeanFactory
を使用可能にすることはオプションです。設定しない場合、SchedulingConfigurer
Bean は自動検出されず、scheduler
を明示的に構成する必要があります。- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- パラメーター:
beanFactory
- 所有 BeanFactory(非null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
setApplicationContext
ApplicationContext
の設定はオプションです。設定すると、登録されたタスクはContextRefreshedEvent
フェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated()
時に発生します。- 次で指定:
- インターフェース
ApplicationContextAware
のsetApplicationContext
- パラメーター:
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
afterSingletonsInstantiated
public void afterSingletonsInstantiated()インターフェースからコピーされた説明:SmartInitializingSingleton
シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。このメソッド内のListableBeanFactory.getBeansOfType(java.lang.Class<T>)
呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。注意 : このコールバックは、
BeanFactory
ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。- 次で指定:
- インターフェース
SmartInitializingSingleton
のafterSingletonsInstantiated
postProcessMergedBeanDefinition
public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName) インターフェースからコピーされた説明:MergedBeanDefinitionPostProcessor
指定された Bean の指定されたマージ済み Bean 定義を後処理します。- 次で指定:
- インターフェース
MergedBeanDefinitionPostProcessor
のpostProcessMergedBeanDefinition
- パラメーター:
beanDefinition
- Bean のマージされた Bean 定義beanType
- 管理対象 Bean インスタンスの実際の型beanName
- Bean の名前- 関連事項:
postProcessBeforeInitialization
インターフェースからコピーされた説明:BeanPostProcessor
Bean 初期化コールバック(InitializingBean のafterPropertiesSet
またはカスタム init メソッドなど)の前に、このBeanPostProcessor
を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。デフォルトの実装は、指定された
bean
をそのまま返します。- 次で指定:
- インターフェース
BeanPostProcessor
のpostProcessBeforeInitialization
- パラメーター:
bean
- 新しい Bean インスタンスbeanName
- Bean の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
null
の場合、後続の BeanPostProcessors は呼び出されません - 関連事項:
postProcessAfterInitialization
インターフェースからコピーされた説明:BeanPostProcessor
Bean 初期化コールバック(InitializingBean のafterPropertiesSet
またはカスタム init メソッドなど)の後に、このBeanPostProcessor
を新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する
bean instanceof FactoryBean
チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。このコールバックは、他のすべての
BeanPostProcessor
コールバックとは異なり、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
メソッドによってトリガーされた短絡後にも呼び出されます。デフォルトの実装は、指定された
bean
をそのまま返します。- 次で指定:
- インターフェース
BeanPostProcessor
のpostProcessAfterInitialization
- パラメーター:
bean
- 新しい Bean インスタンスbeanName
- Bean の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
null
の場合、後続の BeanPostProcessors は呼び出されません - 関連事項:
processScheduled
指定された Bean 上で指定された@Scheduled
メソッド宣言を処理し、リアクティブメソッドと同期メソッドを区別しようとします。- パラメーター:
scheduled
-@Scheduled
アノテーションmethod
- アノテーションが宣言されているメソッドbean
- ターゲット Bean インスタンス- 関連事項:
processScheduledSync(Scheduled, Method, Object)
processScheduledAsync(Scheduled, Method, Object)
createRunnable
指定された Bean インスタンスのRunnable
SE を作成し、指定されたスケジュール済みメソッドを呼び出します。デフォルト実装は
ScheduledMethodRunnable
を作成します。- パラメーター:
target
- ターゲット Bean インスタンスmethod
- 呼び出す予定のメソッド- 導入:
- 6.1
createRunnable
@DeprecatedSE(since="6.1") @Nullable protected RunnableSE createRunnable(ObjectSE target, MethodSE method) 使用すべきではありません。指定された Bean インスタンスのRunnable
SE を作成し、指定されたスケジュール済みメソッドを呼び出します。- パラメーター:
target
- ターゲット Bean インスタンスmethod
- 呼び出す予定のメソッド- 導入:
- 5.1
getScheduledTasks
Scheduled
メソッドおよびプログラムによるSchedulingConfigurer
インタラクションから、現在スケジュールされているすべてのタスクを返します。これには、リアクティブメソッドの今後スケジュールされたサブスクリプションが含まれますが、そのようなメソッドの現在アクティブなサブスクリプションは含まれないことに注意してください。
- 次で指定:
- インターフェース
ScheduledTaskHolder
のgetScheduledTasks
- 導入:
- 5.0.2
postProcessBeforeDestruction
インターフェースからコピーされた説明:DestructionAwareBeanPostProcessor
指定された Bean インスタンスを破棄する前に、この BeanPostProcessor を適用します (たとえば、カスタム破棄コールバックを呼び出します)。DisposableBean の
destroy
およびカスタム destroy メソッドのように、このコールバックは、コンテナーがライフサイクルを完全に管理する Bean にのみ適用されます。これは通常、シングルトンとスコープ Bean の場合です。- 次で指定:
- インターフェース
DestructionAwareBeanPostProcessor
のpostProcessBeforeDestruction
- パラメーター:
bean
- 破棄される Bean インスタンスbeanName
- Bean の名前- 関連事項:
requiresDestruction
インターフェースからコピーされた説明:DestructionAwareBeanPostProcessor
指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。デフォルトの実装は
true
を返します。DestructionAwareBeanPostProcessor
の 5 以前の実装がこのメソッドの具体的な実装を提供しない場合、Spring はtrue
も暗黙のうちに想定します。- 次で指定:
- インターフェース
DestructionAwareBeanPostProcessor
のrequiresDestruction
- パラメーター:
bean
- チェックする Bean インスタンス- 戻り値:
-
DestructionAwareBeanPostProcessor.postProcessBeforeDestruction(java.lang.Object, java.lang.String)
が最終的にこの Bean インスタンスのために呼び出されることになっている場合はtrue
、または不要な場合はfalse
destroy
public void destroy()インターフェースからコピーされた説明:DisposableBean
Bean の破棄時に、包含BeanFactory
によって呼び出されます。- 次で指定:
- インターフェース
DisposableBean
のdestroy
onApplicationEvent
ContextRefreshedEvent
およびContextClosedEvent
に反応し、それぞれfinishRegistration()
を実行し、スケジュールされたタスクを早期にキャンセルします。- 次で指定:
- インターフェース
ApplicationListener<ApplicationContextEvent>
のonApplicationEvent
- パラメーター:
event
- 応答するイベント
createRunnable(Object, Method, String)
を推奨