Spring定时器问题

我想用Spring【采用的是SPRING+MyBatis】做一个定时器,进行任务调度。定时器在tomcate服务起来后,能够正常工作,几秒钟能够自动抛出事件。但当我从数据库中取配置参数的时候,定时器就不能正常工作了。

以下是正常工作的代码:
package cgs.rps.schdl.control;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.text.SimpleDateFormat;
import cgs.rps.system.domain.ParamConf;
import cgs.rps.system.service.ParamConfService;

@Service
public class ScheduleJob{

private ParamConfService paramConfService;

public void work(){
/*
ParamConf pc=paramConfService.getParamConf("FIN_AUTO_METHOD");
String autoMethod=pc.getParamCode().toUpperCase();
*/
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateFormat=new Date();

System.out.println("自动化调度任务:FIN_AUTO_METHOD=Y !"+" 【"+bartDateFormat.format(dateFormat)+"】");
/*
if("Y".equals(autoMethod)){
System.out.println("自动化调度任务:FIN_AUTO_METHOD=Y !"+" 【"+bartDateFormat.format(dateFormat)+"】");
}else{
System.out.println("手工调度调度任务:FIN_AUTO_METHOD=N !"+" 【"+bartDateFormat.format(dateFormat)+"】");
}*/

}
}


自动化调度任务:FIN_AUTO_METHOD=Y ! 【2012-12-09 15:36:55】
自动化调度任务:FIN_AUTO_METHOD=Y ! 【2012-12-09 15:37:00】
自动化调度任务:FIN_AUTO_METHOD=Y ! 【2012-12-09 15:37:05】
自动化调度任务:FIN_AUTO_METHOD=Y ! 【2012-12-09 15:37:10】
自动化调度任务:FIN_AUTO_METHOD=Y ! 【2012-12-09 15:37:15】

我把这两行的注释去掉:
ParamConf pc=paramConfService.getParamConf("FIN_AUTO_METHOD");
String autoMethod=pc.getParamCode().toUpperCase();
定时器就不能工作了。
我如果通过直接JDBC连接取数据库中的参数配置,定时器也没有问题。但只要我用这些Service类:ParamConfService ,就不能工作。为什么?

ParamConfService代码示例:
package cgs.rps.system.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cgs.rps.system.domain.ParamConf;
import cgs.rps.system.persistence.ParamConfMapper;

@Service
public class ParamConfService {
@Autowired
private ParamConfMapper paramConfMapper;

/**
* 获取主键id
* @return
*/
public Integer getParamId() {
return paramConfMapper.getParamId();
}

/**
* 获取某个参数配置信息
* @param param
* @return
*/
public ParamConf getParamConf(Map<String,Object> param) {
return paramConfMapper.getParamConf(param);
}

/**
* 通过匹配代码获取参数
*/
public ParamConf getParamConf(String matchName) {
Map<String,Object> param = new HashMap<String,Object>();

param.put("matchName", matchName);
return paramConfMapper.getParamConf(param);
}
}

猜你喜欢

转载自reshhq.iteye.com/blog/1744493