Spring Bootを使用したSpring 4アプリケーションがあります-
WEBINF/web.xmlファイルはありませんが、アプリケーションの起動時にQuartz 2.2.1 スケジューラを初期化したいと考えています。ただし、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 の Quartz Bean を理解したら、データストアを正しく実装して、実行の合間にジョブを復元する必要があります。
私はpostgresql + spring-data & hibernateを使用しています。この構成では、実行のたびにデータベースが再初期化されます。HSQL は、一部の「import.sql」データも再初期化します。テスト時にジョブが復元されるように、休止状態のインターフェイスを作成する必要がありますか?