当前位置: 首页 > 知识库问答 >
问题:

如何为spring批处理配置数据源?[重复]

浦修文
2023-03-14

在我的例子中,我使用Spring boot和MySQL DB。我有两个数据库用户。

  1. 管理员用户由liquibase用来创建表。它有自己的数据源
@Bean
public DataSource devDataSource() {
        HikariDataSource dataSource = new HikariDataSource();
        ...
        ...
        return dataSource;
        
        }
@Bean   
public DataSource liquibaseDataSource() {
        HikariDataSource dataSource = new HikariDataSource();
        ...
        ...
        return dataSource;
        
        }

现在我正在尝试将Spring批处理添加到服务中。我得到了一个重复的bean异常。当我将@Primary添加到liquibase datasource时,它得到了修复,但我们不想将其用于批处理的读/写操作。

如果我在Dev User数据源中添加@Prime,则不会创建批处理元数据表。据我所知,Dev User无权创建表。因此,当Dev数据源配置为批处理时,不会创建表。

我想通过spring配置(自动)创建批处理元数据表,如果可能的话,通过Dev user为所有表(包括批处理元数据表)读写。

我不知道我错过了什么感谢任何帮助

共有1个答案

萧琛
2023-03-14
@Bean("hikaridev") 
public DataSource devDataSource() {
        HikariDataSource dataSource = new HikariDataSource();
        ...
        ...
        return dataSource;
        
        }

@Bean("liquibase") 
public DataSource liquibaseDataSource() {
        HikariDataSource dataSource = new HikariDataSource();
        ...
        ...
        return dataSource;
        
        }
AnnotationConfigApplicationContext context;
        context = new AnnotationConfigApplicationContext();

DataSource dev = (DataSource) context.getBean("hikaridev");
DataSource liquibase = (DataSource) context.getBean("liquibase");
 类似资料:
  • 我需要访问两个数据源: Spring批处理存储库:在内存H2中 我的步骤需要访问。 我在那里看到了几个关于如何创建自定义

  • 我的主要工作只做读操作,另一个工作做一些写操作,但在上,它忽略了事务,所以我不需要事务支持。如何配置使拥有自己的数据源,而不是保存业务数据的数据源?初始的一个数据源配置如下所示: 然后在的配置类中导入它,注释自动使用它。我最初的想法是尝试设置配置类扩展,但后来我得到了一个 BeanCurrentlyInCreationException(org.SpringFramework.Beans.Fact

  • 如果是,那么我需要做什么来让它们工作?

  • 我试图在spring boot项目中配置spring批处理,我想在没有数据源的情况下使用它。我发现是一条可行之路,但我无法让它发挥作用。问题是我已经定义了另外3个数据源,但我不想在springBatch中使用其中任何一个。 我已经检查了默认实现,如果找不到数据源,它将完全按照我的要求执行。问题是我有三个,不想用任何一个。 请不要建议使用hsql或其他内存DB,因为我不想这样。

  • 我正在设置Spring Cloud Data Flow的实例。我运行了以下命令: 在第二步中,我使用的是postgres数据库,而不是默认的h2。 我已经开发了一个Spring Boot作业,使用spring批处理部署在这个平台窗体中。该作业使用两个数据源:Spring的springclouddataflow和任务元数据,以及我的业务逻辑的billrun。当我在本地运行应用程序时,它会像预期的那样

  • 我有一个Spring Boot(面向批处理)应用程序,它使用一个数据源来完成批处理作业,并将内容写入数据库。 我在类似: 问题是,当我尝试将数据源注入一个Spring配置文件时: ...它告诉我: 无法自动连线。存在多个“DataSource”类型的bean。 Beans:数据源 我还尝试注入数据源,例如: ...但是没有运气:(,尽管这两个数据源的问题最终消失了。 有什么线索可以“绕过”吗?