Java Tomcat自启动程序

    xiaoxiao2023-10-05  158

    方式一:定时器方式(定时任务)

    web.xml中加入监听器

    <listener>       <listener-class>com.qyj.autoback.AutoBackListener</listener-class>   </listener>

     

    AutoBackListener.java

    package com.qyj.autoback;

    import java.util.Timer;

    import javax.servlet.ServletContextEvent;//这个是自启动要用到的类,服务器后台事件 import javax.servlet.ServletContextListener;//这个是自启动要用到的类,服务器后台监听

    //声明一个autoRun类,使用服务器后台监听接口。固定用法,死记硬背 public class AutoBackListener implements ServletContextListener{     private Timer timer = null;          // 当后台被初始化,即发生了tomcat启动了事件,固定用法     public void contextInitialized(ServletContextEvent event) {         // 你要做的事儿,写在这里         System.out.println("AutoBack is running...");                  // 在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能         timer = new Timer(true);         System.out.println("定时器启动");         // 调用exportHistoryBean,0表示任务无延迟,24*60*60*1000表示一天执行一次。         timer.schedule(new TimerTaskRun(event.getServletContext()), 5 * 1000,                 //24 * 60 * 60 * 1000);                 10 * 1000);     }

        // 当后台被销毁,即发生了tomcat关闭了事件,固定用法     public void contextDestroyed(ServletContextEvent event) {         // 执行内容写在这里         timer.cancel();     } }

     

    TimerTaskRun .java

    package com.qyj.autoback;

    import java.util.TimerTask;

    import javax.servlet.ServletContext;

    public class TimerTaskRun extends TimerTask {     @SuppressWarnings("unused")     private ServletContext context = null;          public TimerTaskRun(ServletContext context) {         this.context = context;     }

        public void run() {         // 这里就是调用自己的方法了         System.out.println("定时任务执行(定时下载备份文件)...");     } }

     

    方式二:(只能完成初始化工作 不能用while循环 tomcat会一直卡在启动状态)

    web.xml中加入监听器

      <listener>       <listener-class>com.qyj.autoback.AutoBack</listener-class>   </listener>

    AutoBack.java

    package com.qyj.autoback;

    import javax.servlet.ServletContextEvent;//这个是自启动要用到的类,服务器后台事件 import javax.servlet.ServletContextListener;//这个是自启动要用到的类,服务器后台监听

    //声明一个autoRun类,使用服务器后台监听接口。固定用法,死记硬背 public class AutoBack implements ServletContextListener{     // 当后台被初始化,即发生了tomcat启动了事件,固定用法     public void contextInitialized(ServletContextEvent arg0) {         // 你要做的事儿,写在这里         System.out.println("AutoBack is running...");     }

        // 当后台被销毁,即发生了tomcat关闭了事件,固定用法     public void contextDestroyed(ServletContextEvent arg0) {         // 执行内容写在这里     } }

     

    最新回复(0)