項目有用到定時器,拍給我作,做爲小白的我,感受到壓力很大,上網一查,我頓時就笑了、呵呵噠。java
整理下我簡單測試的spring定時器的代碼。web
1.建立執行定時器的java類spring
public class TimeTest { private Logger logger = LoggerFactory.getLogger(this.getClass()); public void tesTime(){ logger.info("定時器執行成功!--------------------------------------"); for (int i = 0; i < 10; i++) { System.out.println("i的個數爲="+i); } } }
2.配置spring的XML文件,文件名spring-time.xmlspring-mvc
ps:該文件與項目的spring文件最好是分離的mvc
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 xmlns:p="http://www.springframework.org/schema/p" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:mvc="http://www.springframework.org/schema/mvc" 7 xsi:schemaLocation=" 8 http://www.springframework.org/schema/beans 9 http://www.springframework.org/schema/beans/spring-beans.xsd 10 http://www.springframework.org/schema/context 11 http://www.springframework.org/schema/context/spring-context.xsd 12 http://www.springframework.org/schema/mvc 13 http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 14 15 <!-- 要調用的工做類 --> 16 <bean id="timeTestBean" class="com.ssm.cn.time.TimeTest"></bean> 17 18 <!-- 定義調用對象和調用對象的方法 --> 19 <bean id="timeJobe" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 20 <!-- 調用的類 --> 21 <property name="targetObject" ref="timeTestBean"></property> 22 <!-- 調用類中的方法 --> 23 <property name="targetMethod" value="tesTime"></property> 24 </bean> 25 <!-- 定義觸發時間 --> 26 <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 27 <property name="jobDetail" ref="timeJobe"></property> 28 <!-- cron表達式 --> 29 <property name="cronExpression"> 30 <value>0/2 * * * * ?</value><!-- 每2秒執行一次 --> 31 </property> 32 </bean> 33 34 <!-- 總管理類 若是將lazy-init='false'那麼容器啓動就會執行調度程序 --> 35 <bean id="startQuertz" lazy-init="false" autowire="no" 36 class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 37 <property name="triggers"> 38 <list> 39 <ref bean="doTime" /> 40 </list> 41 </property> 42 </bean> 43 </beans>
3.web.xml配置app
<!--配置DispatherServlet --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置SpringMVC須要加載的配置文件 spring-dao.xml,spring-service.xml,spring-web.xml Mybatis==>Spring==>SpringMVC --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <!--默認攔截全部的請求 --> <url-pattern>/</url-pattern> </servlet-mapping>
<param-value>classpath:spring/spring-*.xml</param-value>爲主要的,加載spring開頭的全部spring-*.xml配置,能夠用別的方式,我的習慣。框架
4.maven所需的jar包maven
<!-- spring 定時器 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.5.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>
兩個jar包,不要問我爲何這麼少,你的項目是用的spring框架,就須要這倆jar包。ide
什麼??你的不是maven項目,好吧。本身百度下載吧。測試
純屬本身理解,歡迎指正。
有的jar文件裏沒有 CronTriggerBean 類,不要着急,能夠用 CronTriggerFactoryBean 代替,具體原理,本身閱讀源碼吧。
------------------------------------
慢慢成長,慢慢進步。