今天用spring boot做了一个小的定时器传数据的功能,总结一下自己遇到的bug
希望可以帮到跟我一样问题的选手。
首先是定时器,非常的简单。
1,在springboot的启动类加入@EnableScheduling(开启定时任务)
2,在config或task包中建立ScheduleConfig类实现SchedulingConfigurer(如果定时任务比较重的情况下,给任务分配线程池。如不需要也可以不配置)
3,在task或者service包中编写自己的任务器标注为@Component,然后在要定时任务前加入@Scheduled标注即可
现在就好了,你把@Scheduled写在你需要的方法上,就会定时执行这个方法,需要注意就是定时这个写法,有多种,根据自己的需求去写,例:每五秒 @Scheduled(cron = "*/5 * * * * ?") 一月一次@Scheduled(initialDelay = 5000, fixedRate = 5000)
这些写法自行百度,很简单。
定时实现之后就是今天我遇到的问题了。
我今天做的是很简单的跨库传数据。首先,说一个我遇到的时间最长的坑--不能加@Transactional注解!!
加了这个注解,你就会一直在你的默认库里查,走不出去。
然后,跨库的根本是在你的查询方法上面,需要加一个注解 @DS("库名")
这样子,你的查询对应就会去对应的库查了,所以,很明显就是,你的方法上面如果指定了库,他就去指定库,如果没有,则会在默认库中进行。此时,跨库实现。
当然,你要在配置文件先把这两个库都配置上,spring boot在启动时会自动把你的库都加载到,所以你才能用注解来指定库。
还有就是记得ID要自增。
记得Mapper不要写错。
楼主很久不用mybatis,写错mapper困扰了还久,望共勉。
---相逢莫厌醉金杯,别离多,欢会少。