问题代码:
public class BaiduTask {
@Scheduled(cron = "*/30 * * * * ?")//每隔5秒执行一次public void test() throws Exception {
BaiduController b = new BaiduController ();
b.test();
}
public classBaiduController {
@Autowired
private BaiduTongjiProductService baiduTongjiProductService;
public void test() throws Exception {
BaiduTongjiReport btr=baiduTongjiProductService.findAll();//运行到这里的时候会报空指针错误。
}
......省略
解释:在task里面BaiduController b = new BaiduController ();
new了一个新的BaiduController ,此时,新new的BaiduController 的
@Autowired
private BaiduTongjiProductService baiduTongjiProductService;
已经失效,所以会报空指针错误。
解决方法
public class BaiduTask {
@Autowired
private BaiduTongjiProductService baiduTongjiProductService;
public void test() throws Exception {
BaiduTongjiReport btr=baiduTongjiProductService.findAll();
}