Java 创建bean之前的数据库初始化

Java 创建bean之前的数据库初始化,java,spring,spring-boot,quartz-scheduler,quartz,Java,Spring,Spring Boot,Quartz Scheduler,Quartz,我正在创建一个使用Quartz的计时器应用程序,也正在使用spring从schema.sql文件初始化我的DB。当应用程序启动时,我希望在创建调度器bean之前初始化DB @Bean public Scheduler scheduler() throws SchedulerException { Scheduler scheduler; final StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory(

我正在创建一个使用Quartz的计时器应用程序,也正在使用spring从schema.sql文件初始化我的DB。当应用程序启动时,我希望在创建调度器bean之前初始化DB

@Bean
public Scheduler scheduler() throws SchedulerException {
    Scheduler scheduler;
    final StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory("application.properties");
    stdSchedulerFactory.initialize();
    scheduler = stdSchedulerFactory.getScheduler();
    scheduler.start();
    return scheduler;
}
调度器bean位于TimerConfiguration.java中,它像

@SpringBootApplication@Import{TimerConfiguration.class} 公共类时间应用程序{

有没有办法做到这一点?

@DependsOn注释指定了一个bean,该bean应该在另一个bean初始化之后初始化

建议将等待bean的名称设置为注释中的值

在您的例子中,它是@DependsOndatasource

文档中的更多信息:

当前bean所依赖的bean。指定的任何bean都是 保证在此bean之前由容器创建。已使用 在bean不显式依赖于 另一种是通过属性或构造函数参数,而不是 取决于另一个bean初始化的副作用

可以直接或间接地在任何类上使用组件或 关于用Bean注释的方法

我认为@PostConstruct或@DependsOn都能帮助你