美文网首页GISer在Java开发路上的摸爬滚打
【验证向】关于@PostConstruct注解修饰的定时器的执行

【验证向】关于@PostConstruct注解修饰的定时器的执行

作者: OQOooo | 来源:发表于2022-06-09 18:41 被阅读0次

    测试代码

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import javax.annotation.PostConstruct;
    import java.time.Instant;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.TimeUnit;
    
    /**
     * @Description
     * @Author aqin1012 AQin.
     * @Date 2022/3/10 3:28 PM
     * @Version 1.0
     */
    @Service
    public class RasService {
    
        @Autowired
        private ScheduledExecutorService scheduledExecutorService;
    
        @PostConstruct
        public void dbBackupTimer() {
            System.out.println("START--->");
            scheduledExecutorService.scheduleAtFixedRate(() -> {
                System.out.println("哈哈哈哈~我就是个TEST" + Instant.now().toEpochMilli());
            }, 1, 20, TimeUnit.SECONDS);
            System.out.println("<---END");
        }
    }
    

    执行结果

    image.png

    总结

    由上测试不难发现虽然方法中的定时器执行了多次,但是定时器前后的输出只执行了一次,说明@PostConstruct注解修饰的方法即使在里面存在定时器的情况下也只会在程序启动时执行一次(并开启定时器),定时器则会按照配置不断执行。

    @PostConstruct注解

    • 可以修饰非静态方法

    • 它会在服务器加载Servlet的时候运行,并且只运行一次

    相关文章

      网友评论

        本文标题:【验证向】关于@PostConstruct注解修饰的定时器的执行

        本文链接:https://www.haomeiwen.com/subject/pqwmmrtx.html