我试图像这样创建一个bean:
@Bean
public Clock clock(JobExplorer explorer, Environment environment) {
// Check last run time of job and create a Clock bean
}
但是当应用程序启动时,我收到错误:ORA-00942: table or view does not exist
,因为春季启动BatchAutoConfiguration
尚未创建弹簧批处理架构。
然后,我试着这样做:
@Bean
@ConditionOnBean(BatchDatabaseInitializer.class)
public Clock clock(JobExplorer explorer, Environment environment) {
// Check last run time of job and create a Clock bean
}
这将错误从创建时钟bean时转移到创建需要Clock
的bean时:
@Bean(name = "reader")
public ItemReader<Record> itemReader(
JdbcTemplate jdbcTemplate, Clock clock) {
// Create item reader
}
Error: No qualifying bean of type [java.time.Clock] found for dependency
这会保持级联。如果我在@ConditionalOnBean
方法上放置itemReader
,那么当创建需要itemReader
的bean时,我会得到相同的#34;没有合格的bean&#34;错误。
那么,如何确保在创建bean之前初始化spring批处理模式?
答案 0 :(得分:1)
您是否尝试过使用@DependsOn()
注释?我不知道ConditionOnBean ..