首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring组合quartz的定时的2种方式

2012-08-16 
spring结合quartz的定时的2种方式spring结合quartz的定时的2种方式博客分类:?QuartzquartzSpringBeanXML1、

spring结合quartz的定时的2种方式

spring结合quartz的定时的2种方式
    博客分类:?
  • QuartzquartzSpringBeanXML

    1、 Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。

    Xml代码??spring组合quartz的定时的2种方式
    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?http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">??
    5. ????<!--???
    6. ????方法一:??
    7. ????Spring?的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,??
    8. ????使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。??
    9. ?????-->??
    10. ????<!--1、?配置文件中添加业务类,该类为调用的工作类?-->??
    11. ????<bean?id="businessWork"?class="com.morningstar.quartz.BusinessWork"?/>????
    12. ??????
    13. ????<!--?2、定义任务,在spring文件中配置代理类?,定义调用对象和调用对象的方法-->???
    14. ????<bean?id="businessTask"?class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">????
    15. ????????<!--?调用的类?-->??????????
    16. ????????<property?name="targetObject"?ref="businessWork"/>??
    17. ?????????<!--?调用类中的方法?-->??
    18. ????????<property?name="targetMethod"?value="generateReport"/>???
    19. ????????<!--?false,证明不执行并发任务?-->??
    20. ????????<property?name="concurrent"?value="false"/>?????
    21. ????</bean>???
    22. ????<!--?3、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器,下面是每隔5秒调用一个方法配置-->??
    23. ????<!--?cron表达式?-->??
    24. ????<bean?id="cronTrigger"?class="org.springframework.scheduling.quartz.CronTriggerBean">??
    25. ????????<property?name="jobDetail"?ref="businessTask"/>??
    26. ????????<property?name="cronExpression"?value="10,15,20,25,30,35,40,45,50,55?*?*?*?*??"/>??
    27. ????</bean>??
    28. ??
    29. ????<!--?4、配置调度器?,容器启动就会执行调度程序??-->??
    30. ?????<!--?总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->????
    31. ?????<!--?如果lazy-init='true',则需要实例化该bean才能执行调度程序????????????-->????
    32. ????<bean?id="schdulerFactory"?lazy-init="false"?class="org.springframework.scheduling.quartz.SchedulerFactoryBean">??
    33. ????????<property?name="triggers">??
    34. ????????????<list>??
    35. ????????????????<ref?bean="cronTrigger"/>??
    36. ????????????</list>??
    37. ????????</property>??
    38. ????</bean>??
    39. </beans>??

    ?2、借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能, 继承 Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现 executeInternal方法,executeInternal方法中调用业务类。

    Xml代码??spring组合quartz的定时的2种方式
    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?http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">??
    5. ????<!--???
    6. ????方法二:??
    7. ????借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能,??
    8. ????继承?Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现?executeInternal方法,??
    9. ????executeInternal方法中调用业务类??
    10. ?????-->??
    11. ????<!--?1、定义任务,在spring文件中配置代理类?,定义调用对象和调用对象的方法-->???
    12. ????<bean?id="businessTask"?class="org.springframework.scheduling.quartz.JobDetailBean">????
    13. ????????<!--?调用的类?-->??????????
    14. ????????<property?name="jobClass"?value="com.morningstar.quartz.BusinessWork"/>??
    15. ????????<!--?主要是为了在定时任务需要使用到Bean,通过Spring给注入进来,如果不写明,就会报java.lang.NullPointerException错误?-->??
    16. ????????<!--????
    17. ????????<property?name="jobDataAsMap">??
    18. ????????????<map>??
    19. ????????????????<entry?key="someService">??
    20. ????????????????????<ref?bean="someService"?/>??
    21. ????????????????</entry>??
    22. ????????????</map>??
    23. ????????</property>??
    24. ????????-->??
    25. ????</bean>???
    26. ??????
    27. ????<!--?2、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器-->??
    28. ????<!--?cron表达式?-->??
    29. ????<bean?id="cronTrigger"?class="org.springframework.scheduling.quartz.CronTriggerBean">??
    30. ????????<property?name="jobDetail"?ref="businessTask"/>??
    31. ????????<property?name="cronExpression"?value="10,15,20,25,30,35,40,45,50,55?*?*?*?*??"/>??
    32. ????</bean>??
    33. ??
    34. ????<!--?3、配置调度器?,容器启动就会执行调度程序??-->??
    35. ?????<!--?总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->????
    36. ?????<!--?如果lazy-init='true',则需要实例化该bean才能执行调度程序????????????-->????
    37. ????<bean?id="schdulerFactory"?lazy-init="false"?class="org.springframework.scheduling.quartz.SchedulerFactoryBean">??
    38. ????????<property?name="triggers">??
    39. ????????????<list>??
    40. ????????????????<ref?bean="cronTrigger"/>??
    41. ????????????</list>??
    42. ????????</property>??
    43. ????</bean>??
    44. </beans>??

    ?

热点排行