1. SchedulerFactoryBean:SchedulerFactoryBean是一个有用的Spring用工厂bean,用于管理定时的任务执行, 这个bean实现了Spring的FactoryBean接口, 它可以将任务用定时器去管理,借助Spring提供的SchedulerFactoryBean可以很容易地配置一个Scheduler。SchedulerFactoryBean同时可以很方便地使用Spring容器配置任务,任务对象不需要实现任何任务接口,只要实现一个任务方法即可完成定时任务的配置。
2. JobDetailFactoryBean:JobDetailFactoryBean用来为我们创建任务类org.springframework.scheduling.quartz.JobDetail, 以产生Job实例,从而交给quartz容器管理。即任务需要执行的内容,可以实现Job接口,由JobDetailFactoryBean来定义,同时它也可以自定义JobDetail对象的属性,并将它与Job执行有关的其他配置信息进行关联。可以通过JobDetailFactoryBean和 trigger(触发器)来定义job。如每天固定时间,定期执行某任务,这时就可以使用trigger和JobDetailFactoryBean进行设置。
1. SchedulerFactoryBean是Spring框架在Spring3.0提供的一个非常有用的特性,它可以很容易地把Spring应用实例化成可定时调度器对象。它是一个工厂bean,它采用模板方法,为使用它创建的任务提供可配置的Scheduler上下文。SchedulerFactoryBean是与特定的调度框架和任务域相关的,可用于多种不同的调度器,如Quartz,Commons-Scheduling,Timer,和平台自定义调度器。它可以用于多种类型的调度任务,如单个任务,定期调度执行任务和Cron调度任务。
2. SchedulerFactoryBean通过检测调度框架用于运行任务,它可以被用来选择特定的Scheduler实现,而不必修改应用程序的任何代码。这有助于在应用程序部署的不同环境中,如本地和远程,可以无缝切换调度器实现,而不会破坏应用程序的其他部分。
3. SchedulerFactoryBean负责创建任务调度,它可以添加调度任务,指定任务和触发器的实现,并提供一个可配置接口,可以设置调度器属性。在使用SchedulerFactoryBean之前,必须检查要使用的调度框架是否支持此类调度,并在Spring配置文件中指定所需的配置参数和设置调度任务的表示信息。
4. SchedulerFactoryBean还可以与Spring的事务管理器,例如JTA(Java事务API),衔接起来。它可以自动检测是否有现有事务或新事务,并且可以确保任务只能在事务上下文中执行。这非常重要,它可以保证任务仅在执行事务后才触发,从而避免数据冲突。
5. SchedulerFactoryBean提供了一种Web和EJB应用程序可以通过容器定义任务调度的方式。它可以让开发人员在应用程序启动时自动配置任务调度,并为应用层提供直接访问和控制任务调度的方式。另外,SchedulerFactoryBean还可以用来停止调度任务,重置调度任务,取消调度任务等。此外,SchedulerFactoryBean也可以用来更新任务调度,例如修改触发器的时间或开启事务,重新排列任务的顺序等。