是否可以保证在同一bean中使用@PostConstruct注释的方法在使用@Scheduled的方法之前执行?

问题描述

是的,带有注解的方法@PostConstruct可以保证首先执行。

@Scheduled注释由活化ScheduledAnnotationBeanPostProcessor.postProcessAfterInitialization()调用 任何豆初始化回调(像的InitializingBean的afterPropertiesSet方法自定义的初始化方法)。

解决方法

假设我正在定义一个缓存bean,它将在启动应用程序时初始化,并以固定的间隔刷新,如下所示:

@Component
public class Cache {

     ...

     @PostConstruct
     public void initializeCache() {
     ...
     }

     @Scheduled(fixedRate = 60L * 1000L)
     public void refreshCache() {
     ...
     }

}

即使我未设置初始延迟,也可以确保@PostConstruct下的initializeCache()方法在第一次调度的refreshCache()调用之前立即执行吗?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”