浅析spring定时器的使用

 更新时间:2020年10月03日 08:47:26   作者:cing_self  
这篇文章主要介绍了浅析spring定时器的使用,帮助大家更好的理解和学习spring框架,感兴趣的朋友可以了解下

原生的Java定时器

使用Java.util包下的定时器也很简单,具体代码如下:

//设置定时器开始时间
Date time = sdf.parse("2020-10-01 16:40:00");
//设置定时器
Timer timer = new Timer();
//第三个参数表示每隔多久循环一次
timer.schedule(new TimerTask() {
  @Override
 public void run() {
    System.out.println("嗨");
 }
}, time, 3000);

Spring的定时器

  • 1)导包,除了spring提供的包之外,还需要quartz包(可以到maven仓库中去下载)
  • 2)自定义Task类:

当定时器启动时,Spring执行我们指定Task中的方法

  • 3)MethodInvokingJobDetailFactoryBean类:

将自定义的Task类交给MethodInvokingJobDetailFactoryBean,并告诉它Task的执行方法,由它负责去执行

  • 4)CronTriggerFactoryBean触发器:

定义定时器触发的时间,以及执行对象

  • 5)SchedulerFactoryBean:

将触发器对象交给它统一保管

配置信息如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 https://www.springframework.org/schema/beans/spring-beans.xsd ">

<!-- 定时器-->
   <bean id="myTask" class="com.cjh.MyTask"></bean>
  <!-- 创建一个Spring提供好的计时器对象,用来做倒计时管控-->
   <bean id="taskExecutor" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     <property name="targetObject" ref="myTask"/>
     <property name="targetMethod" value="test"/>
   </bean>
   <!-- 触发器-->
   <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
     <property name="jobDetail" ref="taskExecutor"/>
     <property name="cronExpression" value="30/5 41 18 * * ?"/>
   </bean>
  <!-- 管理触发器对象的容器-->
   <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
       <list>
        <ref bean="cronTrigger"/>
       </list> 
    </property> 
   </bean>
</beans>
  • 6)主函数

只需要加载配置文件,触发器就会启动

public class TestMain {
  public static void main(String[] args) throws MessagingException, ParseException {
    ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
 }
}

以上就是浅析spring定时器的使用的详细内容,更多关于spring 定时器的资料请关注脚本之家其它相关文章!

相关文章

  • idea项目启动报错,日志包冲突slf4j和logback冲突问题

    idea项目启动报错,日志包冲突slf4j和logback冲突问题

    遇到SLF4J冲突时,可以尝试移除冲突的绑定或调整项目依赖,具体方法包括删除多余的Logger绑定库,如Logback或Log4j,或在项目配置文件中明确指定使用的日志框架,若使用WebLogic服务器,需在weblogic.xml中进行特定配置,适当调整pom.xml文件中的依赖版本也可能解决问题
    2024-09-09
  • 解读线程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)区别

    解读线程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1

    这篇文章主要介绍了解读线程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • springboot+thymeleaf找不到视图的解决方案

    springboot+thymeleaf找不到视图的解决方案

    这篇文章主要介绍了springboot+thymeleaf找不到视图的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java中 ${} 和 #{} 有什么区别

    java中 ${} 和 #{} 有什么区别

    本文主要介绍了java中${}和#{}有什么区别,${}和#{}都是MyBatis中用来替换参数的,它们都可以将用户传递过来的参数,替换到MyBatis最终生成的SQL中,但它们区别却是很大的,感兴趣的小伙伴可以一起来学习下面详细内容
    2022-08-08
  • spring之Bean的生命周期详解

    spring之Bean的生命周期详解

    本篇文章主要介绍了spring之Bean的生命周期详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • java实现文件上传、下载、图片预览

    java实现文件上传、下载、图片预览

    这篇文章主要介绍了java实现文件上传、下载、图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 基于Spring depends-on的使用详解

    基于Spring depends-on的使用详解

    这篇文章主要介绍了Spring depends-on的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java多线程 乐观锁和CAS机制详细

    Java多线程 乐观锁和CAS机制详细

    这篇文章主要介绍了Java多线程 乐观锁和CAS机制,乐观锁是对于数据冲突保持一种乐观态度,操作数据时不会对操作的数据进行加锁,需要的朋友可以参考下
    2021-10-10
  • PageHelper分页查询操作方法示例

    PageHelper分页查询操作方法示例

    这篇文章主要为大家介绍了PageHelper分页查询数据操作方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • SpringCloud2020.0.x版UnderTow AccessLog相关配置简介

    SpringCloud2020.0.x版UnderTow AccessLog相关配置简介

    本文详细介绍了SpringCloud中AccessLog的相关配置,我们可以根据文中的相关数据配置出所需的AccessLog的信息以及格式,感兴趣的小伙伴可以参考一下
    2021-08-08

最新评论