Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将HiberNateTransaction管理器添加到spring批处理_Java_Spring_Spring Boot_Hibernate_Spring Batch - Fatal编程技术网

Java 如何将HiberNateTransaction管理器添加到spring批处理

Java 如何将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

如何将HiberNateTransactionManager添加到spring批处理配置中

这是一个后续问题,但与前面的问题不同。 查看可用的和建议的解决方案,似乎需要将HibernateTransactionManager添加到代码中。但我不知道如何在现有代码中添加它们。以下是我的代码:

BatchScheduler.Class

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;
  }
}