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