定时器的简单实现
1.定时器的简单实现:
通过定时器执行我的业务代码,
@RequestMapping("doSaveObject") @ResponseBody //public JsonResult doSaveObject(){} public void save(){ // TODO Auto-generated method stub TimerTask task = new TimerTask() { @Override public void run() { // task to run goes here System.out.println("Hello !!!"); //json字符串数组 String str="[{\"id\":\"828\",\"title\":\"女警\",\"doc_content\":\"文章内容\",\"write_time\":\"2018-01-08\",\"author\":\"作者\"}," + "{\"id\":\"829\",\"title\":\"牛头\",\"doc_content\":\"文章内容\",\"write_time\":\"2018-01-08\",\"author\":\"作者\"}]"; //转化为数组 Jtt[] ss=(Jtt[])JSONArray.toArray(JSONArray.fromObject(str),Jtt.class); //遍历数组,并在每次遍历中给jtt实体赋值 for(int i=0;i<ss.length;i++){ Jtt jtt = new Jtt(); jtt.setId(ss[i].getId()); jtt.setTitle(ss[i].getTitle()); jtt.setDoc_content(ss[i].getDoc_content()); jtt.setWrite_time(ss[i].getWrite_time()); jtt.setAuthor(ss[i].getAuthor()); System.out.println(jtt); jttService.saveObject(jtt); jtt=null; } } }; Timer timer = new Timer(); long delay = 0; long intevalPeriod = 1 * 3000; // schedules the task to be run in an interval timer.scheduleAtFixedRate(task, delay, intevalPeriod); }
说明:
1)定时器是一个方法;
2)这里将定时器写在了控制层,然后在浏览器通过@RequestMapping()注解调用这个定时器。
参考:
https://blog.csdn.net/mazegong/article/details/77743805
JAVA定时器的三种方法(该参考中,main方法中参数直接去掉即可;方法名main可以写成其他方法名)
2.加入监听器: