[英]How does Spring's @Scheduled actually work?
我一直认为@Scheduled
通过代理整个 bean 来工作,就像@Async
、 @Transactional
等一样。 所以我很惊讶下面的作品就像一个魅力:
@Component
public static class Bean {
@Scheduled(fixedRate = 1000)
private void scheduled() {
System.out.println("Yo");
}
}
他们是否改变了某些东西,或者从一开始就是这样? 谢谢。
简而言之,使用最简单的配置,当 Spring 检测到@EnableScheduling
注解时,它会创建一个新的ScheduledAnnotationBeanPostProcessor
来处理@Scheduled
注解。 在使用反射找到@Scheduled
注释后,它将读取它们的配置,然后注册它们以便被TaskScheduler
调用。 ScheduledTaskRegistrar
用于帮助将任务提交到ScheduledThreadPoolExecutor
。
如您所见,没有创建代理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.