利用spring的ApplicationContext在程序中唤醒quartz的job
1.AppService:一个持有ApplicationContext的单列
2.timerContext.xml quartz定时器配置文件
3.唤醒job代码
请注意红色部分
3.唤醒job代码
AppService.setContext(new ClassPathXmlApplicationContext("classpath:atf/config/spring/applicationContext.xml"));
CronTriggerBean trigger = (CronTriggerBean) AppService.getService(CronTriggerBean.class,"atf.ticket.pnrChkTrigger");
System.out.println(trigger.getNextFireTime());
org.quartz.Scheduler scheduler=(org.quartz.impl.StdScheduler)AppService.getContext().getBean("schedulerFactoryService");
JobDetail job=trigger.getJobDetail();
scheduler.triggerJob(job.getName(),job.getGroup());
2.quartz定时器配置文件
<!-- 定时器 -->
<bean id="schedulerFactoryService" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="atf.ticket.pnrChkTrigger" />
</list>
</property>
</bean>
<!--pnr 自动审核 1小时一次 -->
<bean id="atf.ticket.pnrChkTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="atf.ticket.pnrChkTask" />
</property>
<property name="cronExpression">
<value>0 0 0/1 * * ?</value>
</property>
</bean>
<bean id="atf.ticket.pnrChkTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="atf.pnr.pnrAutoCheckProcesser" />
</property>
<property name="targetMethod">
<value>checkPnr</value>
</property>
<property name="concurrent">
<value>false</value>
</property>
</bean>
1.AppService:一个持有ApplicationContext的单列
public class AppService
{
private AppService()
{
}
private static ApplicationContext context = null;
public static ApplicationContext getContext()
{
if (context == null)
context = new ClassPathXmlApplicationContext("classpath:atf/config/spring/applicationContext.xml");
return context;
}
public static void setContext(ApplicationContext aContext)
{
context = aContext;
}
public static <T> Object getService(Class<T> type, final String service)
{
return getContext().getBean(service);
}
public static void autowireService(Object bean)
{
((AbstractApplicationContext) context).getBeanFactory().autowireBeanProperties(bean,
AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
}
public static Statistics getStatistics()
{
SessionFactory sessionFactory = (SessionFactory) getContext().getBean("hibernateSessionFactory");
Statistics statistics = sessionFactory.getStatistics();
return statistics;
}
}
分享到:
相关推荐
在IT行业中,Spring框架是Java企业级应用开发的首选,而Quartz则是一个强大的作业调度库,用于在应用程序中执行定时任务。这个压缩包“spring3.0 + Quartz1.52 + applicationContext.xml”显然是一个关于如何在...
SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...
2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,定义SchedulerFactoryBean,这是Spring管理Quartz Scheduler的主要方式: ```xml <bean id="scheduler" class="org.springframework....
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
例如,可以使用Spring的ApplicationContext来初始化Quartz的Scheduler,然后在运行时通过Spring的Bean工厂动态创建和管理Job。Quartz的JobDetail和Trigger可以被配置为动态加载,这样就能根据业务逻辑或外部输入来...
在Spring配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`来实例化和配置Quartz Scheduler: ```xml <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz....
接着,在Spring的配置文件(如`applicationContext.xml`)中,定义一个`SchedulerFactoryBean`来初始化和管理调度器: ```xml <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz....
在Spring框架中集成Quartz库可以实现强大的定时任务管理功能。Quartz是一个开源的作业调度框架,它允许程序创建和管理任务,以便在特定时间自动执行。Spring通过其优秀的依赖注入(DI)和AOP(面向切面编程)特性,...
- 配置Quartz:在Spring的配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`,配置Quartz的基本参数,如线程池大小、JobStore类型等。 - 注册Job和Trigger:在配置文件中,通过`<bean>`标签...
通过Spring的ApplicationContext,我们可以将Quartz的配置整合到Spring的配置文件中,这样Quartz的Job实例就可以被Spring管理,包括实例化、依赖注入以及销毁。Spring还提供了`org.springframework.scheduling....
同时,需要在Spring的配置文件(如`applicationContext.xml`)中配置Scheduler,声明相关的Job和Trigger。 接着,定义定时任务。在Quartz中,Job是执行的任务,Trigger是触发任务的时间规则。Spring支持使用`@...
在Spring框架中集成Quartz调度器,可以实现定时任务的高效管理。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行任务。在本示例中,我们将探讨如何在Spring应用中配置和使用Quartz,以及通过示例代码来...
在Spring的配置文件(如applicationContext.xml)中,你可以定义一个`SchedulerFactoryBean`,这个bean负责创建和管理Quartz的Scheduler实例。在这里,你可以设置Scheduler的一些属性,比如线程池大小、是否启动...
Spring Quartz是一个强大的任务调度框架,它允许开发人员在Java应用程序中安排复杂的任务执行。Quartz是开源的,可扩展的,且与Spring框架完美集成,为应用提供了灵活且可靠的定时任务管理能力。在这个"spring-...
4. **编写Job类**:在Spring中,一个Job通常是一个实现了`org.quartz.Job`接口的类。你需要定义`execute(JobExecutionContext context)`方法,这是实际执行的任务逻辑。Spring可以自动管理和实例化这些Job,使得任务...
本文将详细介绍如何在Spring项目中配置和使用Quartz,帮助开发者更好地理解和掌握这项技术。 #### 二、Quartz简介 Quartz是一个全面的、开放源代码的作业调度框架,它可以被应用在J2EE和J2SE应用程序中,用于处理...
在Java开发中,Spring框架与Quartz库的结合使用能够帮助开发者实现强大的定时任务功能。本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,...
在Spring整合Quartz的过程中,首先需要在Spring配置文件中声明Scheduler工厂bean,然后定义Job和Trigger的bean。Spring通过`org.springframework.scheduling.quartz.SchedulerFactoryBean`来创建和管理Quartz的...
这个项目展示了如何配置Spring来管理和执行定时任务,利用Quartz的强大功能来实现应用程序的自动化作业调度。 **Spring与Quartz的集成** 1. **Quartz简介**:Quartz是Java平台上的开源作业调度库,它可以用来按...