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