问题描述
1、搭建SSH框架环境2、写一个定时器Timer,随服务器一起启动。3、做一个前台页面,有两个按钮《开始》、《停止》能控制Timer。4、在前台页面再做一个文本框和一个提交按钮,在文本框里输入数字,点击提交能控制Timer的时间间隔。如:输入"1111",点击提交后,Timer的时间间隔就为1111毫秒。5、做一个类Count,这个类必须由spring管理,不能修改。Timer每执行一次就调用这个类的count()方法,要求输出Timer是第几次被调用。Count.java文件如下:public class Count {private int i=0;public void count(){System.out.println("第"+(++i)+"次调用");}}我是新人,不太懂
解决方案
import java.util.Timer;import java.util.TimerTask;public class YourTimer {private Timer timer;/** * 启动 * * @param time */public void start(long time) {timer = new Timer();timer.schedule(new ScheduleRunTask(), 0, time);}/** * 停止 */public void stop() {timer.cancel();}/** * 设置调度时间 * * @param time */public void setTime(long time) {stop();start(time);}/** * 任务 */class ScheduleRunTask extends TimerTask {public void run() {System.out.println("我又被执行了");}}}Timer没怎么用过,可能写得不太好或不太对
解决方案二:
InitializingBean Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet()。 添加一个实现InitializingBean的类,在Spring的Bean加载设置完毕后,将会调用afterPropertiesSet()方法,这样,定时器就随机启动了import org.springframework.beans.factory.InitializingBean;public class TimerStartFactory implements InitializingBean {/** 自己开发的定时器类 */private YourTimer timer;/* (non-Javadoc) * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */public void afterPropertiesSet() throws Exception {// 启动定时器timer.start();}public YourTimer getTimer() {return timer;}public void setTimer(YourTimer timer) {this.timer = timer;}}配置定时器启动类<bean id="timerStartFactory" class="TimerStartFactory"><property name="timer" ref="timer" /></bean>