1、创建业务处理类
public class TaskTestAction
{
public void run()
{
System.out.println("测试定时器");
}
}
2、在spring配置文件中配置定时器
<!-- 定时器业务类 -->
<bean id="testTask" class="com.wkx.warning.controller.TaskTestAction"></bean>
<!-- 定时器执行的业务类 -->
<bean id="testDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="testTask" />
</property>
<property name="targetMethod">
<value>run</value>
</property>
</bean>
<!-- 配置触发器,每隔多久触发一次 -->
<bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="testDetail" />
</property>
<!-- 每隔多久执行一次,毫秒级 -->
<property name="repeatInterval">
<value>5000</value>
</property>
</bean>
<!-- 通用定时器工厂 -->
<bean id="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="testTrigger" />
</list>
</property>
<property name="autoStartup" value="false"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">2</prop>
</props>
</property>
</bean>
<!-- MAP对象,存储定时器 -->
<bean name="testMap" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="testScheduler" value-ref="testScheduler" />
</map>
</constructor-arg>
</bean>
3、在controller代码中获取map对象,并更改和启动定时器信息
// scheMap应该是从spring配置文件中获取的
Scheduler std = scheMap.get("testScheduler");
// 获取触发器
SimpleTrigger t = (SimpleTrigger)std.getTrigger("testTrigger", Scheduler.DEFAULT_GROUP);
// 修改触发器的间隔世界
t.setRepeatInterval(10000);
// 更新定时器
std.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, t);
std.start();
注:以上的scheMap是从配置文件中获取的,可以通过spring注入的方式获取,例如
@Resource(name = "testMap")
private Map<String, Scheduler> scheMap;
也可以自己读取spring配置文件获取
ApplicationContext ac = new FileSystemXmlApplicationContext("D:/apache-tomcat-7.0.25/webapps/ManageSystem/WEB-INF/conf/applicationContext.xml");
Map<String, StdScheduler> scheMap = (Map<String, StdScheduler>)ac.getBean("testMap");
分享到:
相关推荐
总结来说,Spring定时器的配置主要包括创建任务类、在配置文件中定义任务和调度规则,以及在Web应用中设置启动参数。通过这种方式,你可以轻松地在Spring应用中安排和管理周期性的后台任务,而无需手动干预。
标题中的“spring定时器启动两次原因及解决”指的是在Spring框架中使用了定时任务功能,如Spring Boot的`@Scheduled`注解或者Spring Task模块,但遇到了定时任务被触发执行了两次的问题。这种情况可能是由于配置不当...
要启用Spring Task,你需要在你的Spring配置文件(可能是`applicationContext.xml`或使用Java配置类)中添加以下配置: ```xml <!-- 使用XML配置 --> <beans xmlns="http://www.springframework.org/schema/beans" ...
本篇将深入探讨如何在Spring中启动和停止Quartz定时器。 首先,我们需要理解Spring和Quartz的基本概念。Spring是一个强大的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。而...
要使用 Maven 构建包含定时任务的 Spring MVC 项目,你需要在 `pom.xml` 文件中添加必要的依赖,例如 Spring MVC 和 Spring Context: ```xml <groupId>org.springframework <artifactId>spring-context ...
2. **配置Spring**:在Spring的配置文件(如`beans_video.xml`)中,定义`SchedulerFactoryBean`,它是Spring对Quartz的封装,用于初始化和管理调度器。配置如下: ```xml <bean id="scheduler" class="org.spring...
在Spring配置文件中,通过`JobDetailFactoryBean`和`CronTriggerFactoryBean`注册Job和Trigger,并将它们关联起来。 ```xml <bean id="myJobDetail" class="org.springframework.scheduling.quartz....
在Spring框架中,XML配置文件是应用的核心组成部分,用于定义和组织Bean的生命周期和依赖关系。本文将详细解析Spring中XML配置文件的十二个最佳实践,主要关注前六个方法。 1. **避免使用自动绑定(Autowiring)** ...
如果需要手动控制,可以使用`@EnableScheduling`注解在配置类上开启定时任务,或者在XML配置中使用`<task:scheduler>`来创建调度器。要关闭定时任务,可以停止Spring容器,或者在代码中调用`Scheduler#pauseAll()`。...
如果你的应用需要在运行时动态调整定时任务,可以使用`TaskScheduler`的`schedule()`或`reschedule()`方法,或者通过修改配置文件并重新加载。 5. **监控与管理** 为了方便管理和监控定时任务,你可以使用Spring ...
在Spring Boot应用的配置文件(`application.properties`或`application.yml`)中,我们可以设置全局的定时任务配置。例如,我们可以设置一个固定的延迟时间让定时任务开始执行: ```properties spring.task....
- 在Spring配置文件中,我们需要配置SchedulerFactoryBean,这是启动和管理Quartz调度器的关键。例如: ```xml <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ...
通常,这样的示例会包含Spring配置文件(如`applicationContext.xml`或`application.yml`)、Java配置类、定时任务类(实现`org.quartz.Job`接口)以及触发器配置(使用`org.quartz.Trigger`)。 总的来说,了解和...
在新环境中启动定时器服务,确保其能够正常运行并调度任务。 2.6 验证数据: 检查新环境中定时任务的执行结果是否与旧环境一致,确保数据处理正确。 2.7 验证邮件发送: 如果定时任务涉及到邮件通知,验证新...
在实际开发中,Quartz可以用来实现诸如数据清理、报表生成、定时任务推送等后台服务,而Shiro则负责用户的身份验证和权限控制,SpringMVC和Spring负责业务流程和依赖管理,MyBatis处理数据库交互。Maven则在整个开发...
在 Spring 配置文件中,我们可以这样设置: ```xml <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <bean id="cronTrigger" class="org.springframework....
在SpringMVC的配置文件(如:`spring-servlet.xml`)中,我们需要启用TaskExecutor和TaskScheduler。以下是一个基本的配置示例: ```xml <bean id="taskExecutor" class="org.springframework.scheduling....
接下来,我们需要在Spring的配置文件`springMVC-servlet.xml`中启用定时任务扫描,并指定包含定时任务的包。通过`<task:annotation-driven />`启用基于注解的定时任务处理,以及`<context:component-scan>`标签来...
综上所述,"Spring自动执行方法"主要涉及到Spring的定时任务功能,包括`@Scheduled`注解的使用,Cron表达式的配置,以及如何在配置类中启用和定制定时任务。通过`myeclipse完整项目`,开发者可以直接运行和学习这些...
在实际开发中,我们可以结合Spring框架来集成Quartz,这样可以更方便地管理和配置定时任务。Spring提供了对Quartz的全面支持,包括声明式任务调度和编程式任务调度,使得在Spring应用中使用Quartz变得简单易行。 总...