Java Tomcat自启动程序

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tanzongbiao/article/details/90544317

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

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) {
        // 执行内容写在这里
    }
}

 

展开阅读全文

没有更多推荐了,返回首页