`
齐晓威_518
  • 浏览: 618035 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

quartz 在spring 中配置服务 定时执行和循环执行事件

阅读更多
uartz 可以在spring中配置 定时执行和循环执行事件、

操作数据库需要用到spring事务和接口,













<!--配置事务管理 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory">
           <ref bean="sessionFactory" />
       </property>
    </bean>
  
    <!--定义事务代理模板 -->
    <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
       <property name="transactionManager">
           <ref bean="transactionManager" />
       </property>
       <property name="transactionAttributes">
           <props>
              <prop key="insert*">PROPAGATION_REQUIRED</prop>
              <prop key="update*">PROPAGATION_REQUIRED</prop>
              <prop key="delete*">PROPAGATION_REQUIRED</prop>
              <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
               <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
           </props>
       </property>
    </bean>
 
 
 
  <!-- 配置服务   定时执行 ********************************************************** begin -->
   <!--无数据库操作定时的类 (注入格式)
<bean id="getWeather" class="com.linli.domain.service.impl.WeatherService">
</bean>

-->


<!-- 有数据库操作定时类(注入格式)  -->
<bean id="getHTML" parent="txProxyTemplate">
  <property name="target">
   <bean class="com.shenzhan.pro.util.GetStaticHTML"> <!-- 接口实现的类 -->
    <property name="sessionFactory">
     <ref bean="sessionFactory"/>
    </property>
   </bean>
  </property>
</bean>

<!--  配置调用哪些注入和方法   -->
<bean id="methodInvokingJobDetail"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--   <property name="targetObject" ref="timerManager" />    这个是有数据库的方法-->
  <property name="targetObject" ref="getHTML" /><!-- 类的ID -->
  <property name="targetMethod" value="getstatichtml" />   <!-- 要执行类里面的哪个方法 -->
   <property name="concurrent" value="false" />
  
</bean>


<!-- 简单定时,一般为系统运行后多少时间和每间隔多长时间执行(简单的定时) -->
<bean id="simpleTriggerqili"
  class="org.springframework.scheduling.quartz.SimpleTriggerBean">
  <!-- 配置的需要定时的类   -->
  <property name="jobDetail" ref="methodInvokingJobDetail" />
  <!-- 首次执行等待时间1s  -->
  <property name="startDelay" value="120000" />  <!-- 2分钟后执行 --> 
   <!-- 每隔多久执行一次60s  -->
         <property name="repeatInterval" value="3000" />  <!--    4小时执行一次天气更新 -->
<!-- <property name="repeatInterval" value="14400000" />   10分钟 测试 执行一次天气更新 -->
</bean>


<!-- 自定义定时,可以精确到某年某月某天某时某分某秒(精确定时器)
<bean id="cronTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="methodInvokingJobDetail" />
  <property name="cronExpression" value="0 38,40 * * * ?" />
</bean>
  -->

  <!-- lazy-init="false" 服务器启动自动执行该定时器,不需要再另写Servlet来启动  -->
<bean id="quartzCronBean"
  class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
  <property name="triggers">
   <list>
    <ref bean="simpleTriggerqili"/>  <!-- 定时器 -->
   <!--  <ref bean="cronTrigger" />  使用精确定时器 -->
   </list>
  </property>
</bean>
     <!-- 配置服务   定时执行 *************************************************************** end-->
分享到:
评论

相关推荐

    spring3配置quartz定时任务

    在Java开发中,Spring框架是不可或缺的一部分,而Quartz则是一个强大的作业调度库,用于创建、调度和执行作业。本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务...

    spring java 定时器 执行两次 quartz

    在Spring框架中,定时任务是常见的需求,例如用于执行定期数据同步、日志清理或发送邮件等。Quartz是一款强大的开源任务调度库,它能够与Java应用程序无缝集成,实现复杂的时间触发任务。当我们遇到Spring定时器执行...

    quartz 随tomcat启动执行一次

    在题目中的代码中,`SchedulerFactoryBean` 被配置为非懒加载,这意味着当 Spring 上下文初始化时,Quartz 调度器就会被创建并准备好调度任务。 ```xml &lt;bean name="quartzScheduler" class="org.springframework....

    spring+quartz 动态任务方案

    整合 Spring 和 Quartz 可以让开发者更加灵活地管理和控制定时任务。以下是整合的基本步骤: 1. **配置Spring容器**:首先需要将 Quartz 的相关组件注册到 Spring 容器中。这一步主要是为了让 Spring 能够管理 ...

    配置Spring+quartz定时器.docx

    在实际应用中,Quartz 可用于多种场景,例如定期执行数据备份、发送邮件提醒、定时更新数据等。 #### 二、集成Spring与Quartz Spring 是一款流行的Java开发框架,它可以方便地管理和配置各种组件。将Quartz与...

    jcrontab 实现等价的quartz从数据库获取定时任务方案

    2、在数据库中修改定时任务后,执行任务也可以更新(刷新间隔时间); 3、适应于spring 于quartz不能解决的场景 基本等价整合功能,满足实际应用场景(任务暂停、恢复等复杂功能不能应用); 4、可以对该demo工程进行...

    基于Java实现的几种定时任务的方式

    Spring自带了一套定时任务工具Spring-Task,可以把它看成是一个轻量级的Quartz,使用起来十分简单,除Spring相关的包外不需要额外的包,支持注解和配置文件两种形式。通常情况下在Spring体系内,针对简单的定时任务...

    springboot+mybatis+shiro+generator+quartz(基础框架)

    在Spring Boot中,可以通过Spring的Job和Trigger来调度Quartz任务,实现周期性的业务逻辑执行,如数据同步、报表生成等。 6. **Thymeleaf**: Thymeleaf是一个现代的服务器端Java模板引擎,常用于Web应用中的HTML...

    Quartz动态实现数据库任务.docx

    Quartz 不仅能够定义简单或复杂的循环任务,还支持多种触发机制,并且可以在应用内外部执行任务。它被广泛应用于各种业务场景中,比如定时备份数据、发送邮件通知、自动执行报表统计等。 #### 二、创建 Quartz 自带...

    spring定时器代码注释

    在 Spring 中配置定时任务主要分为以下几个步骤: 1. **声明 JobDetailBean:** - **JobDetailBean** 是用来封装一个具体的定时任务的 Bean。 - 通过 `&lt;bean&gt;` 标签定义一个 `JobDetailBean` 类型的 Bean,其 `...

    spring jar 包2

    Spring支持Quartz,可以方便地在Spring应用中配置和管理定时任务。 9. **jruby**:JRuby是Java平台上的Ruby解释器,允许使用Ruby语法编写Java应用。Spring支持动态语言,包括JRuby,提供更灵活的编程模型。 10. **...

    Java定时任务实现解析.pptx.pptx

    2. **Quartz**:Quartz是一个流行的开源定时任务框架,其设计目标是提供一个完全可配置、可扩展的作业调度系统,支持多种触发器和作业存储策略,适合大型企业级应用。 3. **Spring Task**:Spring Task是Spring框架...

    Sql按天周月循环调度执行方法

    4. **应用程序集成**:在某些业务系统中,可以通过编写后台服务或工作流引擎来实现定时任务,例如Spring Boot结合Spring Schedule库。 5. **云服务**:许多云平台提供了定时任务服务,如AWS的CloudWatch Events或...

    Java里timer执行定时任务

    例如,可以在 `init()` 方法中使用 `Timer` 或者使用 Servlet 容器支持的定时任务机制,如Quartz Scheduler 或 Spring 的 `@Scheduled` 注解。这种方式更适用于企业级应用,因为它能够更好地集成到现有的应用环境中...

    管理系统系列--基于springboot +thymeleaf 的小米商城管理系统.zip

    【标题】"管理系统系列--基于springboot +thymeleaf 的小米商城管理系统"涉及的核心技术栈是Spring Boot和Thymeleaf,这两种技术在构建现代Web应用中扮演着重要角色。Spring Boot简化了Spring框架的配置,使得开发...

    SpringMVC基本Demo所需的Jar包

    在开发过程中,通常会将这些依赖项配置在构建工具(如Maven或Gradle)的POM.xml或build.gradle文件中,以便于管理和依赖解决。同时,开发者还需要一个Web服务器(如Tomcat)来运行和部署这些应用。

    SpringBoot中使用@Scheduled注解创建定时任务的实现

    Timer类可以用来实现简单的定时任务,例如执行一次或循环执行任务。例如: ``` Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { System.out.println("2000毫米后...

    java定时任务的实现方式

    1. 创建一个Thread并让它在while循环中运行,利用Thread.sleep()方法来模拟定时任务。这种方式简单易懂,但不推荐用于生产环境,因为它不够灵活,且容易造成资源浪费,因为线程会一直占用CPU资源。 2. 使用Timer和...

    SpringBoot下使用定时任务的方式全揭秘(6种)

    在SpringBoot中,实现定时任务是常见的需求,尤其是在构建微服务架构时,定时任务可以用于数据同步、报表生成、定时备份等场景。本文将详细介绍六种在SpringBoot中创建定时任务的方法,以帮助开发者更好地理解和选择...

    计划任务Cron表达式生成

    "Cron表达式"是Linux系统中计划任务的核心,而Java社区通过`@Scheduled`注解和Quartz库等方式也引入了类似的概念,使得在Java应用中实现定时任务变得非常方便。 "Cron"这个词来源于北欧神话中的时间之神"Cronus",...

Global site tag (gtag.js) - Google Analytics