Java 创建bean之前的数据库初始化
我正在创建一个使用Quartz的计时器应用程序,也正在使用spring从schema.sql文件初始化我的DB。当应用程序启动时,我希望在创建调度器bean之前初始化DBJava 创建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(
@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都能帮助你