0

有人知道启动一些在服务器启动后直接运行一次的代码的可能性吗?当然,我可以做一些变通方法,比如运行一个定时 cron 作业,它在第一次之后什么都不做,但这实际上也很丑陋。我也可以编写自己的 spring bean 并使用初始化阶段,但是我不能确定一切都已经启动并运行。

也许有一个事件或我可以参考的spring bean可以使用?

4

1 回答 1

0

此属性将启用或禁用服务器启动后启动的所有 cronjobs。

cronjob.timertask.loadonstartup=false/true

但是,如果您希望在服务器启动后运行特定的 cronjob 或某些代码,您可以扩展 ServletContextListner 类来实现您的业务案例。

public class CronjobContextListener implements ServletContextListener {
@Override
  public void contextDestroyed(ServletContextEvent arg0) {
    //Code can be written to execute before server shuts down.  
  }
 
  @Override
  public void contextInitialized(ServletContextEvent arg0) {
    // Write a code that needs to be executed just after the server starts
    
    }
    
    }

并在任何 Web 模块 (web.xml) 中注册一个新的 ContextListener。

<listener>
    <listener-class>
        <xyz>.CronjobContextListener
</listener-class>
</listener>
于 2021-07-01T15:09:00.287 回答