public class ScheduledAnnotationBeanPostProcessor extends ObjectSE implements ScheduledTaskHolder, MergedBeanDefinitionPostProcessor, DestructionAwareBeanPostProcessor, Ordered, EmbeddedValueResolverAware, BeanNameAware, BeanFactoryAware, ApplicationContextAware, SmartInitializingSingleton, ApplicationListener<ContextRefreshedEvent>, DisposableBean
TaskScheduler によって呼び出される @Scheduled でアノテーションされたメソッドを登録する Bean ポストプロセッサー。 このポストプロセッサーは、Spring の <task:annotation-driven> XML 要素によって、また @EnableScheduling アノテーションによって自動的に登録されます。
コンテナー内の SchedulingConfigurer インスタンスを自動検出し、使用するスケジューラーのカスタマイズまたはタスク登録(例: Trigger タスクの登録)のきめ細かな制御を可能にします。使用方法の詳細については、@EnableScheduling javadoc を参照してください。
Scheduled, EnableScheduling, SchedulingConfigurer, TaskScheduler, ScheduledTaskRegistrar, AsyncAnnotationBeanPostProcessor| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | DEFAULT_TASK_SCHEDULER_BEAN_NAME 取得する TaskScheduler Bean のデフォルト名: "taskScheduler"。 |
protected Log | logger |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
ScheduledAnnotationBeanPostProcessor() デフォルトの ScheduledAnnotationBeanPostProcessor を作成します。 |
ScheduledAnnotationBeanPostProcessor(ScheduledTaskRegistrar registrar) 指定された ScheduledTaskRegistrar に委譲する ScheduledAnnotationBeanPostProcessor を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterSingletonsInstantiated() シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。 |
protected RunnableSE | createRunnable(ObjectSE target, MethodSE method) 指定された Bean インスタンスの RunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。 |
void | destroy()Bean の破棄時に、包含 BeanFactory によって呼び出されます。 |
int | getOrder() このオブジェクトの順序値を取得します。 |
SetSE<ScheduledTask> | getScheduledTasks()Scheduled メソッドおよびプログラムによる SchedulingConfigurer インタラクションから、現在スケジュールされているすべてのタスクを返します。 |
void | onApplicationEvent(ContextRefreshedEvent event) アプリケーションイベントを処理します。 |
ObjectSE | postProcessAfterInitialization(ObjectSE bean, StringSE beanName)Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の後に、この BeanPostProcessor を新しい Bean インスタンスに適用します。 |
void | postProcessBeforeDestruction(ObjectSE bean, StringSE beanName) 破棄する前に、この BeanPostProcessor を指定の Bean インスタンスに適用します。 |
ObjectSE | 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 としてラップされる ScheduledExecutorServiceSE を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEresetBeanDefinitionpublic static final StringSE DEFAULT_TASK_SCHEDULER_BEAN_NAME
TaskScheduler Bean のデフォルト名: "taskScheduler"。初期ルックアップは型ごとに行われることに注意してください。これは、コンテキストで複数のスケジューラ Bean が見つかった場合のフォールバックです。
protected final Log logger
public ScheduledAnnotationBeanPostProcessor()
ScheduledAnnotationBeanPostProcessor を作成します。public ScheduledAnnotationBeanPostProcessor(ScheduledTaskRegistrar registrar)
ScheduledTaskRegistrar に委譲する ScheduledAnnotationBeanPostProcessor を作成します。registrar - @Scheduled タスクを登録する ScheduledTaskRegistrarpublic int getOrder()
Ordered 値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered の getOrder Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCEpublic void setScheduler(ObjectSE scheduler)
TaskScheduler、または TaskScheduler としてラップされる ScheduledExecutorServiceSE を設定します。 指定されていない場合は、デフォルトのスケジューラ解決が適用されます。コンテキスト内で一意の TaskScheduler Bean を検索するか、それ以外の場合は "taskScheduler" という名前の TaskScheduler Bean を検索します。同じ検索が ScheduledExecutorServiceSE Bean に対しても実行されます。どちらも解決できない場合は、レジストラ内にローカルのシングルスレッドのデフォルトスケジューラが作成されます。
public void setEmbeddedValueResolver(StringValueResolver resolver)
EmbeddedValueResolverAwareEmbeddedValueResolverAware の setEmbeddedValueResolver public void setBeanName(StringSE beanName)
BeanNameAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。
BeanNameAware の setBeanName beanName - ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String) メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。public void setBeanFactory(BeanFactory beanFactory)
BeanFactory を使用可能にすることはオプションです。設定しない場合、SchedulingConfigurer Bean は自動検出されず、scheduler を明示的に構成する必要があります。BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionpublic void setApplicationContext(ApplicationContext applicationContext)
ApplicationContext の設定はオプションです。設定すると、登録されたタスクは ContextRefreshedEvent フェーズでアクティブになります。設定されていない場合、afterSingletonsInstantiated() 時に発生します。ApplicationContextAware の setApplicationContext applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト BeanInitializationExceptionpublic void afterSingletonsInstantiated()
SmartInitializingSingletonListableBeanFactory.getBeansOfType(java.lang.Class<T>) 呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。 注意 : このコールバックは、BeanFactory ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。
SmartInitializingSingleton の afterSingletonsInstantiated public void onApplicationEvent(ContextRefreshedEvent event)
ApplicationListenerApplicationListener<ContextRefreshedEvent> の onApplicationEvent event - 応答するイベント public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName)
MergedBeanDefinitionPostProcessorMergedBeanDefinitionPostProcessor の postProcessMergedBeanDefinition beanDefinition - Bean のマージされた Bean 定義 beanType - 管理対象 Bean インスタンスの実際の型 beanName - Bean の名前 AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<?>, java.lang.String)public ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName)
BeanPostProcessorafterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。 デフォルトの実装は、指定された bean をそのまま返します。
BeanPostProcessor の postProcessBeforeInitialization bean - 新しい Bean インスタンス beanName - Bean の名前 null の場合、後続の BeanPostProcessors は呼び出されません InitializingBean.afterPropertiesSet()public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName)
BeanPostProcessorafterPropertiesSet またはカスタム 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 の名前 null の場合、後続の BeanPostProcessors は呼び出されません InitializingBean.afterPropertiesSet(), FactoryBeanprotected void processScheduled(Scheduled scheduled, MethodSE method, ObjectSE bean)
@Scheduled メソッド宣言を処理します。scheduled - @Scheduled アノテーション method - アノテーションが宣言されているメソッド bean - ターゲット Bean インスタンス createRunnable(Object, Method)protected RunnableSE createRunnable(ObjectSE target, MethodSE method)
RunnableSE を作成し、指定されたスケジュール済みメソッドを呼び出します。 デフォルト実装は ScheduledMethodRunnable を作成します。
target - ターゲット Bean インスタンス method - 呼び出す予定のメソッド ScheduledMethodRunnable.ScheduledMethodRunnable(Object, Method)public SetSE<ScheduledTask> getScheduledTasks()
Scheduled メソッドおよびプログラムによる SchedulingConfigurer インタラクションから、現在スケジュールされているすべてのタスクを返します。ScheduledTaskHolder の getScheduledTasks public void postProcessBeforeDestruction(ObjectSE bean, StringSE beanName)
DestructionAwareBeanPostProcessorDisposableBean の destroy およびカスタム destroy メソッドのように、このコールバックは、コンテナーがライフサイクルを完全に管理する Bean にのみ適用されます。これは通常、シングルトンとスコープ Bean の場合です。
DestructionAwareBeanPostProcessor の postProcessBeforeDestruction bean - 破棄される Bean インスタンス beanName - Bean の名前 DisposableBean.destroy(), AbstractBeanDefinition.setDestroyMethodName(String)public boolean requiresDestruction(ObjectSE bean)
DestructionAwareBeanPostProcessor デフォルトの実装は true を返します。DestructionAwareBeanPostProcessor の 5 以前の実装がこのメソッドの具体的な実装を提供しない場合、Spring は true も暗黙のうちに想定します。
DestructionAwareBeanPostProcessor の requiresDestruction bean - チェックする Bean インスタンス DestructionAwareBeanPostProcessor.postProcessBeforeDestruction(java.lang.Object, java.lang.String) が最終的にこの Bean インスタンスのために呼び出されることになっている場合は true、または不要な場合は false public void destroy()
DisposableBeanBeanFactory によって呼び出されます。DisposableBean の destroy