Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春天是怎样的';计划的实际工作?_Java_Spring_Aop - Fatal编程技术网

Java 春天是怎样的';计划的实际工作?

Java 春天是怎样的';计划的实际工作?,java,spring,aop,Java,Spring,Aop,我一直认为@Scheduled通过代理整个bean来工作,就像@Async、@Transactional等一样。 因此,我很惊讶,下面的内容很有魅力: @Component public static class Bean { @Scheduled(fixedRate = 1000) private void scheduled() { System.out.println("Yo");

我一直认为
@Scheduled
通过代理整个bean来工作,就像
@Async
@Transactional
等一样。 因此,我很惊讶,下面的内容很有魅力:

    @Component
    public static class Bean {

        @Scheduled(fixedRate = 1000)
        private void scheduled() {
            System.out.println("Yo");
        }
    }
他们是改变了什么,还是从一开始就改变了?
谢谢。

简单地说,通过最简单的配置,当Spring检测到
@EnableScheduling
注释时,它将创建一个新的
ScheduledAnnotationBeanPostProcessor
,该处理器能够处理
@Scheduled
注释。使用反射找到
@Scheduled
注释后,它将读取它们的配置,然后注册它们,以便
任务调度器调用它们。
ScheduledTaskRegistrar
用于帮助将任务提交给
ScheduledThreadPoolExecutor


如您所见,未创建任何代理。

很有趣,谢谢。不过,我觉得有点困惑。我的意思是你希望它与其他人保持一致。无论如何,我想在可能的情况下避免不必要的代理是有意义的。