1.情景展示

  想要在tomcat发布运行javaWeb项目时,自动运行某个java类,如何实现? 

2.解决方案

  第一步:重写servlet的init()方法

/**
* web项目启动后,调用该类
* @explain
* @author Marydon
* @creationTime 2019年4月3日下午2:21:51
* @version 1.0
* @since
* @email marydon20170307@163.com
*/
public class TaskExecutor extends HttpServlet {

private static final long serialVersionUID = 1L;

/**
* tomcat容器启动后,将会调用该方法
*/
public void init() throws ServletException {
super.init();
// 项目启动后,立即执行上传任务
UploadTask sb = new UploadTask();
// 数据上传
sb.dataUpload();
}

}

  第二步:在web.xml进行配置

<!-- 服务器一启动,就执行Java类 -->
<!-- 将数据上传到国家数据中心 -->
<servlet>
<servlet-name>uploadServlet</servlet-name>
<servlet-class>base.web.actions.upload.TaskExecutor</servlet-class>
<!-- 被加载到servlet容器的优先级 -->
<load-on-startup>1</load-on-startup>
</servlet>

  设置load-on-startup标签,tomcat在启动时会自动将对应的servlet类加载到servlet容器中,将该servlet实例化并调用初始化init()方法;

  另外,它的值必须为0或者正整数,正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

作者:Marydon