spring的@scheduled实际上是如何工作的?

aemubtdh  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(207)

我一直以为 @Scheduled 以同样的方式代理整个豆子 @Async , @Transactional 等等。所以我很惊讶,下面的作品很有魅力:

@Component
    public static class Bean {

        @Scheduled(fixedRate = 1000)
        private void scheduled() {
            System.out.println("Yo");
        }
    }

他们是改变了什么,还是从一开始就改变了?谢谢。

8zzbczxx

8zzbczxx1#

简单地说,当spring检测到 @EnableScheduling 它创建了一个新的 ScheduledAnnotationBeanPostProcessor 能够处理 @Scheduled 注解。在找到 @Scheduled 使用反射的注解,它将读取它们的配置,然后将它们注册,以便由 TaskScheduler . 一 ScheduledTaskRegistrar 用于帮助将任务提交给 ScheduledThreadPoolExecutor .
如您所见,没有创建代理。

相关问题