注册自己写的定时任务时遇到这个错误:
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
了解课程