spring定時器配置

項目有用到定時器,拍給我作,做爲小白的我,感受到壓力很大,上網一查,我頓時就笑了、呵呵噠。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);
    }
}
}
View Code

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>
View Code

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>
View Code

<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>
View Code

兩個jar包,不要問我爲何這麼少,你的項目是用的spring框架,就須要這倆jar包。ide

什麼??你的不是maven項目,好吧。本身百度下載吧。測試

純屬本身理解,歡迎指正。

 

有的jar文件裏沒有  CronTriggerBean  類,不要着急,能夠用  CronTriggerFactoryBean 代替,具體原理,本身閱讀源碼吧。

------------------------------------

慢慢成長,慢慢進步。

相關文章
相關標籤/搜索