クラス 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取得するTaskSchedulerBean のデフォルト名: "taskScheduler"。protected final org.apache.commons.logging.Logインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターコンストラクター説明デフォルトのScheduledAnnotationBeanPostProcessorを作成します。指定されたScheduledTaskRegistrarに委譲するScheduledAnnotationBeanPostProcessorを作成します。メソッドのサマリー
修飾子と型メソッド説明voidシングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。protected @Nullable RunnableSEcreateRunnable(ObjectSE target, MethodSE method) 使用すべきではありません。protected RunnableSEcreateRunnable(ObjectSE target, MethodSE method, @Nullable StringSE qualifier) 指定された Bean インスタンスのRunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。voiddestroy()Bean の破棄時に、包含BeanFactoryによって呼び出されます。intgetOrder()このオブジェクトの順序値を取得します。ScheduledメソッドおよびプログラムによるSchedulingConfigurerインタラクションから、現在スケジュールされているすべてのタスクを返します。voidContextRefreshedEventおよびContextClosedEventに反応し、それぞれfinishRegistration()を実行し、スケジュールされたタスクを早期にキャンセルします。postProcessAfterInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean のafterPropertiesSetまたはカスタム init メソッドなど)の後に、このBeanPostProcessorを新しい Bean インスタンスに適用します。voidpostProcessBeforeDestruction(ObjectSE bean, StringSE beanName) 指定された Bean インスタンスを破棄する前に、この BeanPostProcessor を適用します (たとえば、カスタム破棄コールバックを呼び出します)。postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean のafterPropertiesSetまたはカスタム init メソッドなど)の前に、このBeanPostProcessorを指定された新しい Bean インスタンスに適用します。voidpostProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName) 指定された Bean の指定されたマージ済み Bean 定義を後処理します。protected voidprocessScheduled(Scheduled scheduled, MethodSE method, ObjectSE bean) 指定された Bean 上で指定された@Scheduledメソッド宣言を処理し、リアクティブメソッドと同期メソッドを区別しようとします。booleanrequiresDestruction(ObjectSE bean) 指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。voidsetApplicationContext(ApplicationContext applicationContext) ApplicationContextの設定はオプションです。設定すると、登録されたタスクはContextRefreshedEventフェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated()時に発生します。voidsetBeanFactory(BeanFactory beanFactory) BeanFactoryを使用可能にすることはオプションです。設定しない場合、SchedulingConfigurerBean は自動検出されず、schedulerを明示的に構成する必要があります。voidsetBeanName(StringSE beanName) この Bean を作成した Bean ファクトリで Bean の名前を設定します。voidsetEmbeddedValueResolver(StringValueResolver resolver) StringValueResolver を設定して、埋め込まれた定義値の解決に使用します。voidsetScheduler(ObjectSE scheduler) スケジュールされたメソッドを呼び出すTaskScheduler、または TaskScheduler としてラップされるScheduledExecutorServiceSE を設定します。クラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース ApplicationListener から継承されたメソッド
supportsAsyncExecutionインターフェース MergedBeanDefinitionPostProcessor から継承されたメソッド
resetBeanDefinition
フィールドの詳細
DEFAULT_TASK_SCHEDULER_BEAN_NAME
取得するTaskSchedulerBean のデフォルト名: "taskScheduler"。初期ルックアップは型ごとに行われることに注意してください。これは、コンテキストで複数のスケジューラ Bean が見つかった場合のフォールバックです。
- 導入:
- 4.2
- 関連事項:
logger
protected final org.apache.commons.logging.Log logger
コンストラクターの詳細
ScheduledAnnotationBeanPostProcessor
public ScheduledAnnotationBeanPostProcessor()デフォルトのScheduledAnnotationBeanPostProcessorを作成します。ScheduledAnnotationBeanPostProcessor
指定されたScheduledTaskRegistrarに委譲するScheduledAnnotationBeanPostProcessorを作成します。- パラメーター:
registrar-@Scheduledタスクを登録する ScheduledTaskRegistrar- 導入:
- 5.1
メソッドの詳細
getOrder
setScheduler
スケジュールされたメソッドを呼び出すTaskScheduler、または TaskScheduler としてラップされるScheduledExecutorServiceSE を設定します。指定されていない場合は、デフォルトのスケジューラ解決が適用されます。コンテキスト内で一意の
TaskSchedulerBean を検索するか、それ以外の場合は "taskScheduler" という名前のTaskSchedulerBean を検索します。同じ検索がScheduledExecutorServiceSE Bean に対しても実行されます。どちらも解決できない場合は、レジストラ内にローカルのシングルスレッドのデフォルトスケジューラが作成されます。- 関連事項:
setEmbeddedValueResolver
インターフェースからコピーされた説明:EmbeddedValueResolverAwareStringValueResolver を設定して、埋め込まれた定義値の解決に使用します。- 次で指定:
- インターフェース
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を使用可能にすることはオプションです。設定しない場合、SchedulingConfigurerBean は自動検出されず、schedulerを明示的に構成する必要があります。- 次で指定:
- インターフェース
BeanFactoryAwareのsetBeanFactory - パラメーター:
beanFactory- 所有 BeanFactory(非null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。- 関連事項:
setApplicationContext
ApplicationContextの設定はオプションです。設定すると、登録されたタスクはContextRefreshedEventフェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated()時に発生します。- 次で指定:
- インターフェース
ApplicationContextAwareのsetApplicationContext - パラメーター:
applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
afterSingletonsInstantiated
public void afterSingletonsInstantiated()インターフェースからコピーされた説明:SmartInitializingSingletonシングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。このメソッド内のListableBeanFactory.getBeansOfType(Class)呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。注意 : このコールバックは、
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
インターフェースからコピーされた説明:BeanPostProcessorBean 初期化コールバック(InitializingBean のafterPropertiesSetまたはカスタム init メソッドなど)の前に、このBeanPostProcessorを指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。デフォルトの実装は、指定された
beanをそのまま返します。- 次で指定:
- インターフェース
BeanPostProcessorのpostProcessBeforeInitialization - パラメーター:
bean- 新しい Bean インスタンスbeanName- Bean の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
nullの場合、後続の BeanPostProcessors は呼び出されません - 関連事項:
postProcessAfterInitialization
インターフェースからコピーされた説明:BeanPostProcessorBean 初期化コールバック(InitializingBean のafterPropertiesSetまたはカスタム init メソッドなど)の後に、このBeanPostProcessorを新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは FactoryBean インスタンスと FactoryBean によって作成されたオブジェクトの両方に対して呼び出されます。ポストプロセッサーは、対応する
bean instanceof FactoryBeanチェックを通じて、FactoryBean または作成されたオブジェクトのどちらに適用するか、あるいは両方に適用するかを決定できます。このコールバックは、他のすべての
BeanPostProcessorコールバックとは異なり、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(Class, String)メソッドによってトリガーされた短絡後にも呼び出されます。デフォルトの実装は、指定された
beanをそのまま返します。- 次で指定:
- インターフェース
BeanPostProcessorのpostProcessAfterInitialization - パラメーター:
bean- 新しい Bean インスタンスbeanName- Bean の名前- 戻り値:
- 使用する Bean インスタンス。元のインスタンスまたはラップされたインスタンス。
nullの場合、後続の BeanPostProcessors は呼び出されません - 関連事項:
processScheduled
createRunnable
指定された Bean インスタンスのRunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。デフォルト実装は
ScheduledMethodRunnableを作成します。- パラメーター:
target- ターゲット Bean インスタンスmethod- 呼び出す予定のメソッド- 導入:
- 6.1
createRunnable
@DeprecatedSE(since="6.1") protected @Nullable RunnableSE createRunnable(ObjectSE target, MethodSE method) 使用すべきではありません。指定された Bean インスタンスのRunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。- パラメーター:
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(Object, String)が最終的にこの Bean インスタンスのために呼び出されることになっている場合はtrue、または不要な場合はfalse
destroy
public void destroy()インターフェースからコピーされた説明:DisposableBeanBean の破棄時に、包含BeanFactoryによって呼び出されます。- 次で指定:
- インターフェース
DisposableBeanのdestroy
onApplicationEvent
ContextRefreshedEventおよびContextClosedEventに反応し、それぞれfinishRegistration()を実行し、スケジュールされたタスクを早期にキャンセルします。- 次で指定:
- インターフェース
ApplicationListener<ApplicationContextEvent>のonApplicationEvent - パラメーター:
event- 応答するイベント
createRunnable(Object, Method, String)を推奨