在一些工作需要使用到定时器,Spring很好的集成了定时器的功能!

在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,下面介绍两种方式实现Spring定时器功能,一种是基于xml配置方式,另外一种是基于注解的方式,大家根据自己的项目选择适合自己的。

一:基于xml配置的方式

1:编写普通的pojo 类

package com.aflyun.web.task;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Service;

@Component

//@Service 都可以

public class TaskCool {

/**

注:上面主要的配置文件中一定要加入task的命名空间和schema。

上面 ref=”taskCool”,默认为这个TaskCool 类的首字母小写的值,若需要修改可以在@Component里面进行修改 ,例如下面

@Component(“taskCoolJob”) 则此时 ref=”taskCoolJon”。

到此基于xml配置完成,运行则可以看到效果!

二:基于注解方式

使用注解方式不需要再每写一个任务类还要在xml文件中配置下,方便了很多。使用Spring的@Scheduled,下面先看一注解@Scheduled在源文件中的定义:

@Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.ANNOTATION_TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface Scheduled

{

public abstract String cron();

public abstract long fixedDelay();

public abstract long fixedRate();

}

cron:表示指定cron表达式。(cron类型表示 是指定时间触发器触发任务执行!)

fixedDelay:表示从上一个任务完成开始到下一个任务开始的间隔,单位是毫秒。

fixedRate:表示从上一个任务开始到下一个任务开始的间隔,单位是毫秒。

下面进行一下具体的配置过程:

1:编写pojo类

package com.tclshop.cms.center.web.task;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;

@Component

public class WebTask {

// 每五秒执行一次

@Scheduled(cron = "0/5 ?")

public void TaskJob() {

System.out.println("test second annotation style ...");

}

}

2:配置xml文件

下面贴出相关的配置文件内容:

注:理论上只需要加上这句配置就可以了,其他参数都不是必须的。

配置完成,运行就能看到效果!

总结:这种定时器的使用,不需要集成其他父类定时器,使用简单方便!功能也很强大!

附:cronExpression的配置说明

字段 允许值 允许的特殊字符

秒 0-59 , - /

分 0-59 , - /

小时 0-23 , - /

日期 1-31 , - ? / L W C

月份 1-12 或者 JAN-DEC , - /

星期 1-7 或者 SUN-SAT , - ? / L C #

年(可选) 留空, 1970-2099 , - * /

例子:

CRON表达式 含义

"0 0 12 ?" 每天中午十二点触发

"0 15 10 ? " 每天早上10:15触发

"0 15 10 ?" 每天早上10:15触发

"0 15 10 ? " 每天早上10:15触发

"0 15 10 ? 2005" 2005年的每天早上10:15触发

"0 14 ?" 每天从下午2点开始到2点59分每分钟一次触发

"0 0/5 14 ?" 每天从下午2点开始到2:55分结束每5分钟一次触发

"0 0/5 14,18 ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发

"0 0-5 14 ?" 每天14:00至14:05每分钟一次触发

"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发

"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发

java怎么加定时器,Spring中定时器实现相关推荐

  1. 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件

    原生java读取properties与spring中@value.@ConfigurationProperties读取配置文件 1.properties类 Properties 继承于 Hashtab ...

  2. spring中定时器的使用

    在很多实际的web应用中,都有需要定时实现的服务,如每天12点推送个新闻,每隔一个小时提醒用户休息一下眼睛,隔一段时间检测用户是否离线等等. spring框架提供了对定时器的支持,通过配置文件就可以很 ...

  3. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  4. Java笔记-AnnotationConfigApplicationContext在Spring中的例子

    Bean在Spring中是可以代替xml文件的.Bean在@Configuration中被创建. 应用程序的配置通过AnnotationConfigApplication加载的.AnnotationC ...

  5. java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...

    通常在Spring发布Hession,RMI等,是非常方便的, 但是要发布SOAP类型的WebService则要依赖一个独立的Servlet容器(如Tomcat+Axis), 这种Webservice ...

  6. java定时器注解加效验_Java中定时器的使用之二(springboot–@Scheduled注解)

    在日常开发中我们经常会遇到定时器的需求,这段时间通过查阅资料,也有些收获,因此准备在这里跟大家分享下. 上次讲了如何利用Timer和TimerTask类创建定时任务:本文主要讲的是,如何利用sprin ...

  7. spring 中定时器的 task:executor执行器和调度器task:scheduler

    任务调度器配置:  task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲  task:scheduled/@cron:cron表达式,注意,若上次任 ...

  8. java web 加载Spring --web.xml 篇

    spring是目前最流行的框架.今天谈谈对spring的认识 起步 javaweb中我们首先会遇到的配置文件就是web.xml,这是javaweb为我们封装的逻辑,不在今天的研究中.略过,下面是一个标 ...

  9. java调度:(四) spring中使用quartz的配置文件.

    quartz主要是三个部分:Scheduler Job Trigger,其中,Job 负责定义需要执行的任务,Trigger 负责设置调度策略,Scheduler 将二者组装在一起,并触发任务开始执行 ...

最新文章

  1. 2019微生物组—宏基因组分析技术研讨会第六期
  2. iOS架构-cocoaPods之自制私有库及管理(17)
  3. 新人入职培训有关职场沟通的总结分享
  4. gs算法的matlab代码_【图像算法amp;MATLAB】直方图均衡(干货代码)
  5. android 动画之漂移,Android之自定义Drawable实现灵动的红鲤鱼动画(上篇)
  6. 无法找到 :import javax.annotation.Resource-------Resource 这个注解
  7. 一篇文带你零基础玩转mysql触发器 | 超级干货,建议收藏
  8. thrift 问题梳理
  9. java实现excel转pdf_java实现excel转pdf(poi+itext)
  10. Android Wi-Fi 设置wifi Only 11a、b、g、n 扫描(以QCOM为平台)
  11. 跳跳棋[LCA+二分查找]-洛谷1852
  12. 不会吧,不会吧,全网最细汉诺塔讲解,不会有人不知道吧。面试官直呼内行,看完只想默默找水喝(C语言)
  13. cad计算机平方,AutoCAD的平方符号怎么打出来?
  14. android 短信消失,警告!安卓用户慎重使用谷歌Messages,短信会无端丢失
  15. 新浪微博视频批量上传社区投稿工具教程
  16. 磊科路由虚拟服务器设置,磊科(Netcore)NW717端口映射怎么设置教程
  17. shell编写的天气预报桌面小程序
  18. NPOI使用说明---设置字体
  19. Java poi导出word文件
  20. 【网络安全】RADIUS协议

热门文章

  1. php协议任意文件读取
  2. 【Linux】rpm常用命令及rpm参数介绍
  3. Itext导出pdf文件
  4. ASP.NET MVC Module
  5. [测试]单元测试框架NUnit
  6. not accessible due to restriction on required library
  7. 在小公司、中等规模公司和大公司工作有什么不同
  8. 为什么SD-WAN5年增长超过40%,越来越受企业欢迎?
  9. draw.io项目本地部署
  10. 用SAPI实现Speech Recognition(SR) - 听写模式