spring 框架自带的定时器功能

1...pom.xml 文件配置

 1  <dependencies>
 2     <dependency>
 3       <groupId>junit</groupId>
 4       <artifactId>junit</artifactId>
 5       <version>4.11</version>
 6       <scope>test</scope>
 7     </dependency>
 8       <dependency>
 9           <groupId>org.quartz-scheduler</groupId>
10           <artifactId>quartz</artifactId>
11           <version>1.8.5</version>
12       </dependency>
13       <dependency>
14           <groupId>org.springframework</groupId>
15           <artifactId>spring-context-support</artifactId>
16           <version>3.2.9.RELEASE</version>
17       </dependency>
18       <dependency>
19           <groupId>org.springframework</groupId>
20           <artifactId>spring-core</artifactId>
21           <version>3.2.9.RELEASE</version>
22       </dependency>
23       <dependency>
24           <groupId>org.springframework</groupId>
25           <artifactId>spring-webmvc</artifactId>
26           <version>3.2.9.RELEASE</version>
27       </dependency>
28 <!--      事务管理 必须引入-->
29       <dependency>
30           <groupId>org.springframework</groupId>
31           <artifactId>spring-tx</artifactId>
32           <version>3.2.9.RELEASE</version>
33       </dependency>
34   </dependencies>

2...applicationContext.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5        http://www.springframework.org/schema/beans/spring-beans.xsd">
 6 <!--创建的java 类  方法 -->
 7     <bean id="testTime" class="com.wsc.core.time.TestTime"></bean>
 8     <bean id="jobDetailFactoryBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 9 <!--      目标 java类名-->
10         <property name="targetObject" ref="testTime"></property>
11 <!--     目标 java方法名-->
12         <property name="targetMethod" value="testTime"></property>
13     </bean>
14     <bean id="triggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
15         <property name="jobDetail" ref="jobDetailFactoryBean"></property>
16 <!--      cron 表达式-->
17         <property name="cronExpression" value="0/5 * * * * ?"></property>
18     </bean>
19     <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
20         <property name="triggers" >
21             <list>
22                 <ref bean="triggerFactoryBean"></ref>
23             </list>
24         </property>
25     </bean>
26 </beans>

3...web.xml

 1 <!DOCTYPE web-app PUBLIC
 2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
 4
 5 <web-app>
 6   <display-name>Archetype Created Web Application</display-name>
 7 <!--    引入 spring 配置文件-->
 8     <context-param>
 9         <param-name>contextConfigLocation</param-name>
10         <param-value>classpath:applicationContext.xml</param-value>
11     </context-param>
12 <!--    监听器-->
13     <listener>
14         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
15     </listener>
16
17 </web-app>

4...java 代码

 1 package com.wsc.core.time;
 2
 3 import java.util.Date;
 4
 5 /**
 6  * @version 1.0
 7  * @ClassName TestTime
 8  * @Description TODO
 9  * @Author WSC
10  * @Date 2019/8/18 11:24
11  **/
12 public class TestTime {
13 //    java 简单的方法  定义定时功能
14     public void testTime(){
15         System.out.println(new Date());
16     }
17 }

5...启动tomcat 测试 运行结果

 1 Sun Aug 18 12:06:30 CST 2019
 2 Sun Aug 18 12:06:35 CST 2019
 3 Sun Aug 18 12:06:40 CST 2019
 4 Sun Aug 18 12:06:45 CST 2019
 5 Sun Aug 18 12:06:50 CST 2019
 6 Sun Aug 18 12:06:55 CST 2019
 7 Sun Aug 18 12:07:00 CST 2019
 8 Sun Aug 18 12:07:05 CST 2019
 9 Sun Aug 18 12:07:10 CST 2019
10 Sun Aug 18 12:07:15 CST 2019

6...cron 表达式

*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发 
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 

0 0 12 ? * WED 表示每个星期三中午12点
0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五点
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发 
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 0 23 L * ? 每月最后一天23点执行一次
0 15 10 L * ? 每月最后一日的上午10:15触发 
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 
0 15 10 * * ? 2005 2005年的每天上午10:15触发 
0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发 
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

"30 * * * * ?" 每半分钟触发任务
"30 10 * * * ?" 每小时的10分30秒触发任务
"30 10 1 * * ?" 每天1点10分30秒触发任务
"30 10 1 20 * ?" 每月20号1点10分30秒触发任务
"30 10 1 20 10 ? *" 每年10月20号1点10分30秒触发任务
"30 10 1 20 10 ? 2011" 2011年10月20号1点10分30秒触发任务
"30 10 1 ? 10 * 2011" 2011年10月每天1点10分30秒触发任务
"30 10 1 ? 10 SUN 2011" 2011年10月每周日1点10分30秒触发任务
"15,30,45 * * * * ?" 每15秒,30秒,45秒时触发任务
"15-45 * * * * ?" 15到45秒内,每秒都触发任务
"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次
"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次
"0 0/3 * * * ?" 每小时的第0分0秒开始,每三分钟触发一次
"0 15 10 ? * MON-FRI" 星期一到星期五的10点15分0秒触发任务
"0 15 10 L * ?" 每个月最后一天的10点15分0秒触发任务
"0 15 10 LW * ?" 每个月最后一个工作日的10点15分0秒触发任务
"0 15 10 ? * 5L" 每个月最后一个星期四的10点15分0秒触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务

注:

执行任务的类不用继承其他超级类。这种方式可以实现低版本的spring(4.1.0)以前版本和高版本quartz(2.X)的结合使用。

如果公司使用spring4.1.0以前版本,又不想使用quartz1.X版本, 可以通过这种方式。

(如果使用高版本spring和低版本quartz:报错。原因是 JobDetailFactoryBean的创建需要JobDetailImpl, 而低版本quartz1.X包下没有该实现类。)

原文地址:https://www.cnblogs.com/wangshichang/p/11372041.html

时间: 2024-11-08 23:49:48

spring 框架自带的定时器功能的相关文章

Spring框架及AOP

Spring核心概念 Spring框架大约由20个功能模块组成,这些模块主分为六个部分: Core Container :基础部分,提供了IoC特性. Data Access/Integration Web AOP(Aspect Orient Programming) Instrumentation Test Spring两大核心技术 控制反转(Inversion of Control IoC) 称之为”依赖注入”,是面向对象编程中的一个设计理念,用来降低程序代码之间的耦合度. 将组建对象的控制

Spring 框架常用语法进行总结

Spring 框架常用语法进行总结: spring框架的二大主要的功能就是IOC和AOP. IOC: 控制反转(依赖注入) AOP: 面向切面编程 学习spring最好的方法就是去看官网,里面有详细的说明及使用原则 介绍spring 中的注解的使用,xml配置等目前在市面上面较少. 首先介绍Java自带的元注解 (元注解就是 能注解到注解上的注解,能用在其他注解上的注解 ) Java5.0定义了4个标准的meta-annotation类型 @Target : 用于描述注解的范围,即注解在哪用.它

【Java】关于Spring框架的总结 (一)

本文总结一些关于Spring框架的理解,注意点及基础操作.如果有不对的地方,欢迎批评和建议.大家一起努力吧! Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架.Spring 致力于 Java EE 应用的各种解决方案,而不是仅仅专注于某一层的方案,可以说, Spring 是企业应用开发的"一站式"选择,Spring 贯穿表现层.

一篇文章带你了解spring框架

虽然现在流行用SpringBoot了,很多配置已经简化和封装了,但是对于Spring的一些基础我们了解一些是对我们自己的架构思想很有帮助的!接下来和笔者一起来探讨一下Spring框架吧! 1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发.Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安

Spring 框架的架包分析、功能作用、优点,及jar架包简介

Spring 框架的架包详解    Spring的作用     Spring的优势 由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关jar的作用.关系.这篇文章总结一下spring框架的相关知识. 一.spirng的简介(高手可以跳过) Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Sprin

Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?

quote:Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? (IT公司面试手册,可以多看看) spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory. Spring 解决了的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,也就是Spring的依赖注入机制.这个注入机制是在Ioc 容器中进行管理的. Bean 组件是在 Spring 的 org.

6.IDEA用maven新建带spring框架的工程

5.IDEA用maven新建带spring框架的工程 1.使用maven骨架新建web工程 1.1新建web工程 1.2新建好包,并制定好文件类型 1.3添加框架支持(本文核心,不建议手动添加框架支持) 2.添加spring框架的支持,并添加空白的配置文件 3.配置web.xml(除了springmvc的核心配置,之外如果不需要继承spring的话其他配置可不用添加) <?xml version="1.0" encoding="UTF-8"?> <

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释 2016-04-14 23:40 13030人阅读 评论(2) 收藏 举报 分类: SSM(7) 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿出来一起分享一下,希望有不足的地方大家批评指正~~~ 首先   这篇文章暂时只对框架中所要用到的配置文件进行解

采用dom4j和反射模拟Spring框架的依赖注入功能

Spring的依赖注入是指将对象的创建权交给Spring框架,将对象所依赖的属性注入进来的行为.在学习了dom4j后,其实也可以利用dom4j和反射做一个小Demo模拟Spring框架的这种功能.下面是具体的步骤: 第一步,编写配置文件.配置文件的书写,采用了和Spring的配置文件applicationContext.xml一样的书写规则: <?xml version="1.0" encoding="UTF-8"?> <!-- applicati