public class ScheduledAnnotationBeanPostProcessor extends Object implements ScheduledTaskHolder, org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor, org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor, org.springframework.core.Ordered, EmbeddedValueResolverAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.BeanFactoryAware, ApplicationContextAware, org.springframework.beans.factory.SmartInitializingSingleton, ApplicationListener<ContextRefreshedEvent>, org.springframework.beans.factory.DisposableBean
Scheduled
to be invoked by a TaskScheduler according
to the "fixedRate", "fixedDelay", or "cron" expression provided via the annotation.
This post-processor is automatically registered by Spring's
<task:annotation-driven> XML element, and also by the
@EnableScheduling annotation.
Autodetects any SchedulingConfigurer instances in the container,
allowing for customization of the scheduler to be used or for fine-grained
control over task registration (e.g. registration of Trigger tasks.
See the @EnableScheduling javadocs for complete usage details.
Scheduled,
EnableScheduling,
SchedulingConfigurer,
TaskScheduler,
ScheduledTaskRegistrar,
AsyncAnnotationBeanPostProcessor| 限定符和类型 | 字段和说明 |
|---|---|
static String |
DEFAULT_TASK_SCHEDULER_BEAN_NAME
The default name of the
TaskScheduler bean to pick up: "taskScheduler". |
protected Log |
logger |
| 构造器和说明 |
|---|
ScheduledAnnotationBeanPostProcessor() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
afterSingletonsInstantiated() |
void |
destroy() |
int |
getOrder() |
Set<ScheduledTask> |
getScheduledTasks()
Return all currently scheduled tasks, from
Scheduled methods
as well as from programmatic SchedulingConfigurer interaction. |
void |
onApplicationEvent(ContextRefreshedEvent event)
Handle an application event.
|
Object |
postProcessAfterInitialization(Object bean,
String beanName) |
void |
postProcessBeforeDestruction(Object bean,
String beanName) |
Object |
postProcessBeforeInitialization(Object bean,
String beanName) |
void |
postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition,
Class<?> beanType,
String beanName) |
protected void |
processScheduled(Scheduled scheduled,
Method method,
Object bean)
Process the given
@Scheduled method declaration on the given bean. |
boolean |
requiresDestruction(Object bean) |
void |
setApplicationContext(ApplicationContext applicationContext)
Setting an
ApplicationContext is optional: If set, registered
tasks will be activated in the ContextRefreshedEvent phase;
if not set, it will happen at afterSingletonsInstantiated() time. |
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
Making a
BeanFactory available is optional; if not set,
SchedulingConfigurer beans won't get autodetected and
a scheduler has to be explicitly configured. |
void |
setBeanName(String beanName) |
void |
setEmbeddedValueResolver(org.springframework.util.StringValueResolver resolver)
Set the StringValueResolver to use for resolving embedded definition values.
|
void |
setScheduler(Object scheduler)
Set the
TaskScheduler that will invoke
the scheduled methods, or a ScheduledExecutorService
to be wrapped as a TaskScheduler. |
public static final String DEFAULT_TASK_SCHEDULER_BEAN_NAME
TaskScheduler bean to pick up: "taskScheduler".
Note that the initial lookup happens by type; this is just the fallback in case of multiple scheduler beans found in the context.
protected final Log logger
public int getOrder()
getOrder 在接口中 org.springframework.core.Orderedpublic void setScheduler(Object scheduler)
TaskScheduler that will invoke
the scheduled methods, or a ScheduledExecutorService
to be wrapped as a TaskScheduler.
If not specified, default scheduler resolution will apply: searching for a
unique TaskScheduler bean in the context, or for a TaskScheduler
bean named "taskScheduler" otherwise; the same lookup will also be performed for
a ScheduledExecutorService bean. If neither of the two is resolvable,
a local single-threaded default scheduler will be created within the registrar.
public void setEmbeddedValueResolver(org.springframework.util.StringValueResolver resolver)
EmbeddedValueResolverAwarepublic void setBeanName(String beanName)
setBeanName 在接口中 org.springframework.beans.factory.BeanNameAwarepublic void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
BeanFactory available is optional; if not set,
SchedulingConfigurer beans won't get autodetected and
a scheduler has to be explicitly configured.setBeanFactory 在接口中 org.springframework.beans.factory.BeanFactoryAwarepublic void setApplicationContext(ApplicationContext applicationContext)
ApplicationContext is optional: If set, registered
tasks will be activated in the ContextRefreshedEvent phase;
if not set, it will happen at afterSingletonsInstantiated() time.setApplicationContext 在接口中 ApplicationContextAwareapplicationContext - the ApplicationContext object to be used by this objectBeanInitializationExceptionpublic void afterSingletonsInstantiated()
afterSingletonsInstantiated 在接口中 org.springframework.beans.factory.SmartInitializingSingletonpublic void onApplicationEvent(ContextRefreshedEvent event)
ApplicationListeneronApplicationEvent 在接口中 ApplicationListener<ContextRefreshedEvent>event - the event to respond topublic void postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition,
Class<?> beanType,
String beanName)
postProcessMergedBeanDefinition 在接口中 org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessorpublic Object postProcessBeforeInitialization(Object bean, String beanName)
postProcessBeforeInitialization 在接口中 org.springframework.beans.factory.config.BeanPostProcessorpublic Object postProcessAfterInitialization(Object bean, String beanName)
postProcessAfterInitialization 在接口中 org.springframework.beans.factory.config.BeanPostProcessorprotected void processScheduled(Scheduled scheduled, Method method, Object bean)
@Scheduled method declaration on the given bean.scheduled - the @Scheduled annotationmethod - the method that the annotation has been declared onbean - the target bean instancepublic Set<ScheduledTask> getScheduledTasks()
Scheduled methods
as well as from programmatic SchedulingConfigurer interaction.getScheduledTasks 在接口中 ScheduledTaskHolderpublic void postProcessBeforeDestruction(Object bean, String beanName)
postProcessBeforeDestruction 在接口中 org.springframework.beans.factory.config.DestructionAwareBeanPostProcessorpublic boolean requiresDestruction(Object bean)
requiresDestruction 在接口中 org.springframework.beans.factory.config.DestructionAwareBeanPostProcessorpublic void destroy()
destroy 在接口中 org.springframework.beans.factory.DisposableBean