zoukankan      html  css  js  c++  java
  • spingmvc实现在程序启动时调用数据库数据

    直接上代码:

    package com.java.zxf.servlet;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServlet;
    import org.apache.log4j.Logger;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.context.ServletContextAware;
    import com.java.zxf.domain.Backvisit;
    import com.java.zxf.domain.Orders;
    import com.java.zxf.service.BackvisitService;
    import com.java.zxf.service.OrdersService;
    import com.java.zxf.util.ShowString;
    import com.java.zxf.util.SystemOut;
    import com.java.zxf.util.TimeUtil;
    /**
     * 默认好评实现了类
     * @author lenovo
     *
     */
    @Controller
    public class EvaluateServlet extends HttpServlet implements ServletContextAware{
    
    
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        @Autowired
        private OrdersService orderService;
        @Autowired
        private BackvisitService backvisitService;
        private SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        private Logger log = Logger.getLogger(EvaluateServlet.class);
        /**
         * 
         */
    
        /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        Timer timer = new Timer();
        private String className = Thread.currentThread().getStackTrace()[1].getClassName();
        private Orders order;
        Calendar calender = new GregorianCalendar();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                order = orderService.selecttoevaluate();
                String t = order.getExpiretime();
                long during = 0;
                try {
                    during = formater.parse(t).getTime();
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                calender.setTime(new Date(during));
                //默认订单过期后7天后自动好评
                calender.add(Calendar.DATE, ShowString.defaultEvaluatetime);
                long remain = calender.getTimeInMillis()-during;
                try {
                    Thread.currentThread().sleep(remain-10000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Backvisit backvisit = new Backvisit();
                String times = TimeUtil.transtolinesep(new Date(during));
                List<Orders> orderlist = orderService.findorderbyexpiretime(times);
                for (Orders orders : orderlist) {
                    backvisit.setOrderId(orders.getOrderId());
                    backvisit.setAdvice("默认好评");
                    backvisit.setDos(5);
                    backvisit.setBackvisitMethod("线上评论");
                    backvisit.setCompleteTime(TimeUtil.transtolinesep(new Date()));
                    backvisit.setIscomplte("y");
                    int iflag = backvisitService.insert(backvisit);
                    if (iflag == 1){
                        SystemOut.classSystemOut(className, "好评完成,将执行下一轮任务");
                    }
                }
            }
        };
        
        //在重写该方法后就可以在程序启动时候去调用数据库的数据了。
        @Override
        public void setServletContext(ServletContext servletContext) {
            // TODO Auto-generated method stub
            System.out.println("--------默认好评任务启动成功--------"); 
            Date time = new Date();
            timer.schedule(task,time,24*60*60*1000L);
        }
        
        
        
    }
  • 相关阅读:
    115. Distinct Subsequences
    Kafka介绍-copy
    Flume的简单介绍-copy
    storm简介、原理、概念-copy
    日志管理ELK-copy
    安装Nginx+Lua+OpenResty
    Nginx(四)------nginx 负载均衡-copy
    Nginx(一)------简介与安装-copy
    Nginx(二)nginx.conf 配置文件-copy
    Nginx(三)nginx 反向代理-copy
  • 原文地址:https://www.cnblogs.com/g177w/p/9620969.html
Copyright © 2011-2022 走看看