quartz結合spring例子

準備工作 下載quartz和spring相應的包
 
1.編寫測試類
public class SimpleService implements Serializable {        
         private static final long serialVersionUID = 122323233244334343L;
        private static final Log logger = LogFactory.getLog(SimpleService.class);
        public void testMethod1(){
                //這裏執行定時調度業務 便於顯示明細添加些特殊符號
                logger.info("testMethod1...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@....1");
        }
        public void testMethod2(){
                logger.info("testMethod2....###################################################!!!!!!!!!!!!!!!!!!!!...2");
        }
}        
2. 開始配置spring。
(1)配置spring的數據源

        <bean id="dataSource"
                class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName">
                        <value>com.mysql.jdbc.Driver</value>
                </property>
                <property name="url">
                        <value>jdbc:mysql://127.0.0.1:3306/going</value>
                </property>
                <property name="username">
                        <value>root</value>
                </property>
                <property name="password">
                        <value>root</value>
                </property>
                <property name="maxActive">
                        <value>100</value>
                </property>
                <property name="maxIdle">
                        <value>2</value>
                </property>
                <property name="maxWait">
                        <value>1200</value>
                </property>
        </bean>
<!-- 下面是tomcat的 數據源 jndi的配置-->
     
            <!--
         <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" abstract="false">
                <property name="jndiName">
         <value>java:comp/env/jdbc/mysqlds</value>
</property>
        </bean>
(2)配置spring和job的結合

  
    <bean id="simpleService" class="com.going.oa.quartz.example5.SimpleService">    
</bean>
        
        <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
                <property name="dataSource">
                        <ref bean="dataSource"/>
                </property>
                <property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>
                <property name="configLocation" value="classpath:quartz_priority.properties"/>
                <property name="triggers">
                <list>
                <ref bean="trigger1"/>
                <ref bean="trigger2"/>
                </list>
                </property>
        </bean>
        <bean id="jobDetail1"    class="frameworkx.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
                <property name="targetObject" ref="simpleService"/>
                <property name="targetMethod" value="testMethod1"/>
                <property name="concurrent" value="false" />
        </bean>
        
                <bean id="trigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
                <property name="jobDetail" ref="jobDetail1"/>
                <property name="cronExpression" value="0/5 * * ? * * *"/>
        </bean>
        <bean id="jobDetail2"    class="frameworkx.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
                <property name="targetObject" ref="simpleService"/>
                <property name="targetMethod" value="testMethod2"/>
                <property name="concurrent" value="false" />
        </bean>
        
        <bean id="trigger2" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
                <property name="jobDetail" ref="jobDetail2"/>
                <property name="startDelay" value="1"/>
                <property name="repeatCount" value="100"/>
                <property name="repeatInterval" value="1000"/>
        </bean>
</beans>
注意上面frameworkx.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean類在spring的jar包中不提供,spring提供的MethodInvokingJobDetailFactoryBean有個bug所以需要到網上去下載這倆個文件http://jira.springframework.org/browse/SPR-3797
 
3編寫測試類

package com.going.oa.quartz.example5;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Created by IntelliJ IDEA.
* User: weiyong
* Date: 2010-3-23
* Time: 13:57:51
* To change this template use File | Settings | File Templates.
*/

public class MainTest {    
            /**
             * @param args
             */

            public static void main(String[] args) {
                    ApplicationContext springContext = new ClassPathXmlApplicationContext(new String[]{"classpath:applicationContext-resources.xml","classpath:applicationContext-quartz.xml"});
            }
    }

運行Ok
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章