spring定時器配置


項目有用到定時器,拍給我做,作為小白的我,感覺到壓力很大,上網一查,我頓時就笑了、呵呵噠。

整理下我簡單測試的spring定時器的代碼。

 

1.創建執行定時器的java類

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.xml

ps:該文件與項目的spring文件最好是分離的

 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配置

<!--配置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包

<!-- 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包。

什么??你的不是maven項目,好吧。自己百度下載吧。

純屬自己理解,歡迎指正。

 

有的jar文件里沒有  CronTriggerBean  類,不要着急,可以用  CronTriggerFactoryBean 代替,具體原理,自己閱讀源碼吧。

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

慢慢成長,慢慢進步。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM