Java 如何将HiberNateTransaction管理器添加到spring批处理
如何将HiberNateTransactionManager添加到spring批处理配置中 这是一个后续问题,但与前面的问题不同。 查看可用的和建议的解决方案,似乎需要将HibernateTransactionManager添加到代码中。但我不知道如何在现有代码中添加它们。以下是我的代码: BatchScheduler.ClassJava 如何将HiberNateTransaction管理器添加到spring批处理,java,spring,spring-boot,hibernate,spring-batch,Java,Spring,Spring Boot,Hibernate,Spring Batch,如何将HiberNateTransactionManager添加到spring批处理配置中 这是一个后续问题,但与前面的问题不同。 查看可用的和建议的解决方案,似乎需要将HibernateTransactionManager添加到代码中。但我不知道如何在现有代码中添加它们。以下是我的代码: BatchScheduler.Class import org.springframework.batch.core.launch.support.simplejoblancher; 导入org.spring
import org.springframework.batch.core.launch.support.simplejoblancher;
导入org.springframework.batch.core.repository.JobRepository;
导入org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean;
导入org.springframework.batch.support.transaction.ResourcesTranslationManager;
导入org.springframework.context.annotation.Bean;
导入org.springframework.scheduling.annotation.EnableScheduling;
//@配置
@使能调度
公共类批处理调度器{
@豆子
公共资源事务管理器事务管理器(){
返回新的ResourcesTransactionManager();
}
@豆子
公共地图JobRepositoryFactoryBean地图JobRepositoryFactory(
ResourcelessTransactionManager(txManager)引发异常{
MapJobRepositoryFactoryBean工厂=新的MapJobRepositoryFactoryBean(txManager);
factory.AfterPropertieSet();
返回工厂;
}
@豆子
public JobRepository JobRepository(MapJobRepositoryFactoryBean工厂)引发异常{
返回factory.getObject();
}
@豆子
公共SimpleJobLauncher作业启动器(JobRepository JobRepository){
simplejoblancher启动器=新的simplejoblancher();
setJobRepository(jobRepository);
返回发射器;
}
}
LogBatchConfiguration.class
@配置
@启用批处理
@导入({BatchScheduler.class})
公共类LogBatchConfiguration{
私有静态最终记录器log=LoggerFactory.getLogger(LogBatchConfiguration.class);
@自动连线专用SimpleJobLauncher作业启动器;
@自动连线
@限定符(value=“maindasource”)
公共数据源main数据源;
@自动连线
@限定符(value=“toolsDataSource”)
公共数据源工具数据源;
@自连线公共StepBuilderFactory StepBuilderFactory;
@自动连线公共JobBuilderFactory JobBuilderFactory;
@自动连线专用RestTemplate RestTemplate;
@限定符(value=“createLocalSessionFactory”)
@自动连线
私有SessionFactory createLocalSessionFactory;
@限定符(value=“createToolSessionFactory”)
@自动连线
私有SessionFactory createToolSessionFactory;
@豆子
RestTemplate RestTemplate(RestTemplateBuilder){
RestTemplate RestTemplate=新RestTemplate();
这是否回答了您的问题:
DataSourceConfiguration.class
@Configuration
public class DataSourceConfiguration {
private static final Logger log = LoggerFactory.getLogger(DataSourceConfiguration.class);
@Value("${spring.datasource.usern}")
private String insightsDbUser;
@Value("${spring.datasource.pass}")
private String insightsDbPass;
@Value("${spring.datasource.url}")
private String insightsDbConnection;
@Value("${tools.datasource.user}")
private String toolsDbUser
@Value("${tools.datasource.pass}")
private String toolsDbPass;
@Value("${tools.datasource.url}")
private String toolsDbConnection;
@Bean(name = "mainDataSource")
@Primary
public DataSource mainDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl(insightsDbConnection);
dataSource.setUsername(insightsDbUser);
dataSource.setPassword(insightsDbPass);
if (log.isInfoEnabled()) {
//
}
return dataSource;
}
@Bean(name = "toolsDataSource")
public DataSource vtoolsDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl(toolsDbConnection);
dataSource.setUsername(toolsDbUser);
dataSource.setPassword(toolsDbPass);
if (log.isInfoEnabled()) {
//
}
return dataSource;
}
}