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-->
分享到:
相关推荐
在Java开发中,Spring框架是不可或缺的一部分,而Quartz则是一个强大的作业调度库,用于创建、调度和执行作业。本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务...
在Spring框架中,定时任务是常见的需求,例如用于执行定期数据同步、日志清理或发送邮件等。Quartz是一款强大的开源任务调度库,它能够与Java应用程序无缝集成,实现复杂的时间触发任务。当我们遇到Spring定时器执行...
在题目中的代码中,`SchedulerFactoryBean` 被配置为非懒加载,这意味着当 Spring 上下文初始化时,Quartz 调度器就会被创建并准备好调度任务。 ```xml <bean name="quartzScheduler" class="org.springframework....
整合 Spring 和 Quartz 可以让开发者更加灵活地管理和控制定时任务。以下是整合的基本步骤: 1. **配置Spring容器**:首先需要将 Quartz 的相关组件注册到 Spring 容器中。这一步主要是为了让 Spring 能够管理 ...
在实际应用中,Quartz 可用于多种场景,例如定期执行数据备份、发送邮件提醒、定时更新数据等。 #### 二、集成Spring与Quartz Spring 是一款流行的Java开发框架,它可以方便地管理和配置各种组件。将Quartz与...
2、在数据库中修改定时任务后,执行任务也可以更新(刷新间隔时间); 3、适应于spring 于quartz不能解决的场景 基本等价整合功能,满足实际应用场景(任务暂停、恢复等复杂功能不能应用); 4、可以对该demo工程进行...
Spring自带了一套定时任务工具Spring-Task,可以把它看成是一个轻量级的Quartz,使用起来十分简单,除Spring相关的包外不需要额外的包,支持注解和配置文件两种形式。通常情况下在Spring体系内,针对简单的定时任务...
在Spring Boot中,可以通过Spring的Job和Trigger来调度Quartz任务,实现周期性的业务逻辑执行,如数据同步、报表生成等。 6. **Thymeleaf**: Thymeleaf是一个现代的服务器端Java模板引擎,常用于Web应用中的HTML...
Quartz 不仅能够定义简单或复杂的循环任务,还支持多种触发机制,并且可以在应用内外部执行任务。它被广泛应用于各种业务场景中,比如定时备份数据、发送邮件通知、自动执行报表统计等。 #### 二、创建 Quartz 自带...
在 Spring 中配置定时任务主要分为以下几个步骤: 1. **声明 JobDetailBean:** - **JobDetailBean** 是用来封装一个具体的定时任务的 Bean。 - 通过 `<bean>` 标签定义一个 `JobDetailBean` 类型的 Bean,其 `...
Spring支持Quartz,可以方便地在Spring应用中配置和管理定时任务。 9. **jruby**:JRuby是Java平台上的Ruby解释器,允许使用Ruby语法编写Java应用。Spring支持动态语言,包括JRuby,提供更灵活的编程模型。 10. **...
2. **Quartz**:Quartz是一个流行的开源定时任务框架,其设计目标是提供一个完全可配置、可扩展的作业调度系统,支持多种触发器和作业存储策略,适合大型企业级应用。 3. **Spring Task**:Spring Task是Spring框架...
4. **应用程序集成**:在某些业务系统中,可以通过编写后台服务或工作流引擎来实现定时任务,例如Spring Boot结合Spring Schedule库。 5. **云服务**:许多云平台提供了定时任务服务,如AWS的CloudWatch Events或...
例如,可以在 `init()` 方法中使用 `Timer` 或者使用 Servlet 容器支持的定时任务机制,如Quartz Scheduler 或 Spring 的 `@Scheduled` 注解。这种方式更适用于企业级应用,因为它能够更好地集成到现有的应用环境中...
【标题】"管理系统系列--基于springboot +thymeleaf 的小米商城管理系统"涉及的核心技术栈是Spring Boot和Thymeleaf,这两种技术在构建现代Web应用中扮演着重要角色。Spring Boot简化了Spring框架的配置,使得开发...
在开发过程中,通常会将这些依赖项配置在构建工具(如Maven或Gradle)的POM.xml或build.gradle文件中,以便于管理和依赖解决。同时,开发者还需要一个Web服务器(如Tomcat)来运行和部署这些应用。
Timer类可以用来实现简单的定时任务,例如执行一次或循环执行任务。例如: ``` Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { System.out.println("2000毫米后...
1. 创建一个Thread并让它在while循环中运行,利用Thread.sleep()方法来模拟定时任务。这种方式简单易懂,但不推荐用于生产环境,因为它不够灵活,且容易造成资源浪费,因为线程会一直占用CPU资源。 2. 使用Timer和...
在SpringBoot中,实现定时任务是常见的需求,尤其是在构建微服务架构时,定时任务可以用于数据同步、报表生成、定时备份等场景。本文将详细介绍六种在SpringBoot中创建定时任务的方法,以帮助开发者更好地理解和选择...
"Cron表达式"是Linux系统中计划任务的核心,而Java社区通过`@Scheduled`注解和Quartz库等方式也引入了类似的概念,使得在Java应用中实现定时任务变得非常方便。 "Cron"这个词来源于北欧神话中的时间之神"Cronus",...