Dri*_*mri 2 java spring annotations spring-batch
我正在尝试让Spring Batch 2.2与JavaConfig一起工作.
如今他们有一个@EnableBatchProcessing注释,可以设置很多东西.默认情况下,注释使用数据源作为其作业数据,但我们不希望保存此数据,也不希望为其创建表.文档说明了一些关于自定义但是我无法使其工作:
DataSource在上下文中提供bean作为bean,或者BatchConfigurer在配置类本身中实现,例如:public class AppConfig extends DefaultBatchConfigurer {
在我们的旧版本中,我们已经能够使用MapJobRepositoryFactoryBean类,因此它将所有数据保存在内存中.反正有没有使用完整的JavaConfig方式而没有定义DataSource?我无法让它发挥作用.
即使我定义了两个数据源(一个永远不会被使用的HSQL内存)和我们真正的Oracle数据源,它也不起作用,因为它找到两个数据源而不是一个.
任何人都知道如何让这个工作?或者是回归到以XML方式配置它的唯一解决方案?
假设没有其他工件需要DataSource,您可以使用java config创建没有DataSource的上下文.为此,您的配置需要在指出时扩展DefaultBatchConfigurer.在那里,你将覆盖两个方法,createJobRepository()和setDataSource().下面是一个示例上下文(它没有定义一个或多个步骤,但它正确地引导了所有相关的bean).
@Configuration
@EnableBatchProcessing
public static class BatchConfiguration extends DefaultBatchConfigurer {
@Override
protected JobRepository createJobRepository() throws Exception {
MapJobRepositoryFactoryBean factory =
new MapJobRepositoryFactoryBean();
factory.afterPropertiesSet();
return (JobRepository) factory.getObject();
}
@Override
@Autowired
public void setDataSource(DataSource dataSource) {
if(dataSource != null) {
super.setDataSource(dataSource);
}
}
@Bean
public DataSource dataSource() {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为简化这将是一个有用的功能,并将其添加到Jira.您可以在此处跟踪其进度:https://jira.springsource.org/browse/BATCH-2048
| 归档时间: |
|
| 查看次数: |
5804 次 |
| 最近记录: |