spring定时器
引入quartz的jar包
Application.xml中,Job,JobDetail ,Trigger,Scheduler解释:
scheduler是一个计划调度器容器,容器里面可以放许多的trigger和jobdetail.
当容器启动后,里面的每个jobDetail都会根据trigger按部就班自动去执行.
- JobDetail是一个可执行的工作,它本身可能是有状态的.
- Trigger触发器代表一个调度参数的配置,什么时候去调
- 当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对),就可以伴随容器启动而调度执行了.
- Scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业.
<!-- 定时器 --> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- 注入触发器 --> <property name="triggers"> <list> <ref bean="myTrigger"/> </list> </property> </bean> <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!-- 注入任务详情对象 --> <property name="jobDetail" ref="jobDetail"/> <!-- 注入cron表达式,通过这个表达式指定触发的时间点 --> <property name="cronExpression"> <value>0/5 * * * * ?</value> </property> </bean> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 注入目标对象 --> <property name="targetObject" ref="myJob"/> <!-- 注入目标方法 --> <property name="targetMethod" value="sendMail"/> </bean> <bean id="myJob" class="com.yucheng.shop.controller.SendMail" />