我有 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'数据。我应该创建一个休眠接口,以便在测试时恢复作业吗?