注册自己写的定时任务时遇到这个错误:
Fail to instantiate [org.springframework.scheduling.support.ScheduledMethodRunnable]: Constructor threw exception; nested exception is java.lang.NoSuchMethodException: $Proxy27.saveRecord()
java代码:
packge com.icbc.gdjm.bcms.task;
@Component("StoreRecordTask")
public class StoreRecordTask {
private static final Logger log = LoggerFactory.getLogger(StoreRecordTask.class);
@Inject
private ItemStoreDao itemStoreDao;
@Transactional
public void saveRecord() {
int flag = 0;
try {
flag = itemStoreDao.saveStoreLog();
if (flag == 1) {
log.info("更新了库存");
} else {
log.info("异常,请查看数据库!");
}
} catch (Exception e) {
log.warn("任务异常!");
}
}
}配置文件:
<context:component-scan base-package="com.icbc.gdjm.bcms.task"></context:component-scan> <task:scheduled-tasks> <task:scheduled ref="StoreRecordTask" method="saveRecord" cron="0 55 22 * * ?" /> </task:scheduled-tasks>
如果把dao层的注入去掉,直接手写jdbc就不会报错,网上查原因说是private造成的,但我的方法是public的,不知道怎么解决?
【毕设】SSM全面梳理,前后端分离,zTree 和复杂SQL打造权限系统,解惑MyBatis和RESTful
了解课程