springboot mybatis 定时器 @EnableScheduling这种方式 service 与 mapper 是不能正常调用的

1、Application启动项上加入@EnableScheduling    实现类上加入@Component 、@Scheduled (cron = "0/10 * * * * ?") 确实能正常的实现定时的操作  ,但是......   这个操作只是一些简单的输出  ,如果想调取service 与 mapper层的方法 那就悲剧了。

2、那要怎么解决这个问题呢,我经过查询了解到定时任务不受spring的管理,然后自己手写一个spring工具类

如下:

3、这样Application启动项就需要改动一下,让后面能获取到ApplicationContext

如下:

4、这时候就涉及到具体的使用了

如果你想调用servicer层的话

如下:

CarTotalService carTotalService= (CarTotalService )ApplicationContextUtil.getBean("carTotalService ");

CarTotalService carTotalService= (CarTotalService )ApplicationContextUtil.getBean(CarTotalService.class);

切记

"carTotalService "这个名称在service实现类里有@Service   标明名称("carTotalService ")

如果你想直接调用mapper层的话

如下:

CarTotalMapper carTotalMapper= (CarTotalMapper)ApplicationContextUtil.getBean(CarTotalMapper.class);

carTotalMapper.方法  就可以了

自己爬坑爬了好久,希望不要有人掉坑了

猜你喜欢

转载自blog.csdn.net/zhangjiaqianghh/article/details/83016430