• 启动tomcat服务器自动执行一个方法


    第一步:配置web.xml文件

    添加如下代码

    <servlet>
        <servlet-name>Timer</servlet-name>
            <servlet-class>com.ccpit.p4.dispatch.web.Timer</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>    

    第二步:创建一个类,名称为Timer(与web.xml文件的servlet-class内的Timer匹配)

    package com.ccpit.p4.dispatch.web;
    
    import java.util.concurrent.Executors;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.TimeUnit;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    
    @SuppressWarnings("serial")
    public class Timer extends HttpServlet{
    
        //Start tomcat automatically to perform listening services
        //Override一定要写哦,不然启动tomcat后不会自动执行init()方法
        @Override
        public void init() throws ServletException{
            ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);  
            executor.scheduleWithFixedDelay(new EchoServer(), 0, 1000, TimeUnit.MILLISECONDS); 
        }
    }

    第三步:大家是不是把第二步的代码放入工程后new EchoServer()会报错,没错这里就是真正要执行我们写的服务代码,将在下面贴出,我再描述一下scheduleWithFixedDelay这个函数各个参数的含义:参数一:待执行的任务,参数二:执行任务前的延时,参数三:每次执行任务的间隔时间单位ms,参数四:设定以ms为记时单位。

    服务方法代码

    package com.ccpit.p4.dispatch.web;
    class EchoServer implements Runnable {
        @Override  
        public void run() {  
            try {  
                Thread.sleep(50);  
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
             //下面写我们要执行的代码
            System.out.println("This is a echo server. The current time is " +  
                    System.currentTimeMillis() + "."); 
            
        }  
    }  

    至此,启动服务器将会自动执行我们特指的一个方法,我是在需要自动发送邮件的时候用到了此功能,因为在服务启动或重启之后自动监控是否有需要发送的邮箱,所用使用了启动tomcat将自动执行自己设定的方法,如有疑问欢迎留言

    
    
  • 相关阅读:
    储存过程、游标与触发器
    linux系统安装mysql5.7.22
    为什么实体类要实现序列化
    jsp的语法
    jsp的原理
    转发和重定向的区别
    SpringCloud——简介,5大组件
    Java——线程,并发包(Lock、线程池)
    Spring Data JPA——基本使用
    SpringBoot
  • 原文地址:https://www.cnblogs.com/guoyinli/p/7128864.html
Copyright © 2020-2023  润新知