使用Spring 4 / Boot初始化Quartz调度程序

时间:2013-12-22 06:30:07

标签: spring quartz-scheduler spring-boot spring-4

我有 Spring 4 应用程序 Spring Boot -

没有 WEBINF / web.xml 文件,但是,我想在应用程序启动时初始化Quartz 2.2.1 scheduler。但是,使用QuartzInitializerServlet的所有示例都定义了 web.xml 文件中的设置。

我可以将这些配置添加到我的应用程序启动配置吗?

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
        @Bean
public DataSource dataSource() {
    DriverManagerDataSource ds = new DriverManagerDataSource();
    ds.setDriverClassName("org.postgresql.Driver");
    ds.setUrl("jdbc:postgresql://localhost/...");
    ds.setUsername("...");
    ds.setPassword("...!");
    return ds;
}
    /** Add configuration to start Quartz here so 
        I can access it throughout the app? **/ 

@Bean
public org.springframework.scheduling.quartz.SchedulerFactoryBean SchedulerFactoryBean(){
    SchedulerFactoryBean scheduler = new SchedulerFactoryBean();
    scheduler.setAutoStartup(true);
    scheduler.setDataSource(dataSource());
    return scheduler;

}

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

更新

想出了spring-framework石英bean,现在我需要正确地实现数据存储以在两次运行之间恢复作业。

我正在使用postgresql + spring-data&冬眠。此配置在每次运行时重新初始化数据库。 HSQL也重新初始化了一些'import.sql'数据。我应该创建一个休眠接口,以便在测试时恢复作业吗?

0 个答案:

没有答案