项目是一场使用本地雄猫的战争
我想知道服务器启动后如何自动运行方法?我知道在服务器启动期间(例如@Bean方法)或在上下文初始化期间运行它的方法,但是在服务器成功启动后如何执行呢?
最佳答案
在Tomcat上,可以使用Tomcat自己的LifecycleListener。如果您在主机组件上注册了AFTER_START_EVENT的侦听器,则应获得所需的内容。
LifecycleListener的代码示例:
package my.sourcecode;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;
public class TomcatHostLifecycleListener implements LifecycleListener {
@Override
public void lifecycleEvent(LifecycleEvent lifeCE) {
if (Lifecycle.AFTER_START_EVENT.equals(lifeCE.getType())) {
System.out.println("************ TomcatHostLifecycleListener: After Start Event");
}
}
}
必须将代码作为JAR文件放置在Tomcat的全局lib文件夹中!
必须在Tomcats server.xml中(在您的情况下)在host元素中注册一个LifecycleListener,因为我们要监听主机的启动:
....
<Host ... >
<Listener className="my.sourcecode.TomcatHostLifecycleListener"/>
....
有关更多文档,请参见Lifecycle-Doc。
(已通过Tomcat 8.5.30和Java 11测试)