我一直以为 @Scheduled
以同样的方式代理整个豆子 @Async
, @Transactional
等等。所以我很惊讶,下面的作品很有魅力:
@Component
public static class Bean {
@Scheduled(fixedRate = 1000)
private void scheduled() {
System.out.println("Yo");
}
}
他们是改变了什么,还是从一开始就改变了?谢谢。
1条答案
按热度按时间8zzbczxx1#
简单地说,当spring检测到
@EnableScheduling
它创建了一个新的ScheduledAnnotationBeanPostProcessor
能够处理@Scheduled
注解。在找到@Scheduled
使用反射的注解,它将读取它们的配置,然后将它们注册,以便由TaskScheduler
. 一ScheduledTaskRegistrar
用于帮助将任务提交给ScheduledThreadPoolExecutor
.如您所见,没有创建代理。