我正在研究 SpringFrameWork 和 MySQL。
我做了一些测试,数据库和框架之间的通信工作正常。问题是当我在扩展线程的类中使用注入 bean 时,不知何故 bean 变为空。我不知道为什么。
下面是我的 Spring 控制器的一部分,它创建线程扩展对象('IISDaemon')。
@RequestMapping("/list")
public ModelAndView list(
@RequestParam(value="page_no", defaultValue="1") Integer page_no)
throws Exception{
log.info("Manager called Web page. page no : " + page_no);
ModelAndView mav = new ModelAndView();
//test
log.info("svc bean : " + svc);
IISDaemon daemon = new IISDaemon();
daemon.start();
//
mav.setViewName("/iis/list");
mav.addObject("list", svc.list(page_no));
return mav;
}
下面是类 IISDaemon。
public class IISDaemon extends Thread {
private Logger log = Logger.getLogger(getClass());
@Inject
IISSVCImpl svc;
@Override
public void run() {
log.info("Daemon starts.");
ArrayList<IISVO> list = new ArrayList<IISVO>();
try{
log.info("svc bean : " + svc);
list = (ArrayList<IISVO>)svc.jobList(1);
for(IISVO vo : list){
this.sleep(5000);
log.info(vo);
}
}catch(Exception e){e.printStackTrace();}
}
};
如您所见,我在每个类中打印 2 个日志。上一个是
“ INFO : org.owls.iis.IISMgrController - svc bean : org.owls.iis.svc.IISSVCImpl@4572
”。
下一个是
" INFO : org.owls.iis.daemon.IISDaemon - svc bean : null
"
提前感谢您的建议:D