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

Spring boot只使用带有两个数据源的主数据源

东郭昌胤
2023-03-14

我在Spring Boot中有两个MySQL数据源,因此我有两个配置类。但它似乎只使用主数据源。所有实体都是为主数据源创建的,因此crawlerdb和userdb实体都是在userdb中创建的。

我的userdb主配置:

/**
 * Data source for the MySQL User Database schema
 */
@Configuration
@EntityScan(basePackages = "cs.crawler.server.projectcs.domain.userdb")
@EnableJpaRepositories(basePackages = "cs.crawler.server.projectcs.repos.userdb")
@EnableTransactionManagement
public class UserDomainConfig {

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource.users")
    public DataSourceProperties userDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource.users.configuration")
    public HikariDataSource firstDataSource(DataSourceProperties firstDataSourceProperties) {
        return firstDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
    }

}

我的辅助爬网数据库配置:

/**
 * Data source for the MySQL crawler database schema
 */
@Configuration
@EntityScan(basePackages = "cs.crawler.server.projectcs.domain.crawlerdb")
@EnableJpaRepositories(basePackages = "cs.crawler.server.projectcs.repos.crawlerdb")
@EnableTransactionManagement
public class CrawlerDomainConfig {

    @Bean
    @ConfigurationProperties("spring.datasource.crawler")
    public DataSourceProperties crawlerDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @ConfigurationProperties("spring.datasource.crawler.configuration")
    public HikariDataSource secondDataSource(DataSourceProperties secondDataSourceProperties) {
        return secondDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
    }

}

两个架构的实体类位于不同的包中,如类名上方的EntityScan所示。但当我检查MySQL workbench中创建的模式时,我看到所有实体都是在userdb中创建的。

共有1个答案

赫连俊雄
2023-03-14

我通过更改配置文件来修复我的问题,如下所示:

https://springframework.guru/how-to-configure-multiple-data-sources-in-a-spring-boot-application/

 类似资料:
  • 我的springboot应用程序尝试从两个数据源(emwbis和backupemwbis)读取数据。我按照下面的链接配置了我的springboot应用程序以从两个不同的数据源读取数据。 http://www.baeldung.com/spring-data-jpa-multiple-databases 我的应用程序当前的问题是,它总是从主数据源(emwbis)读取数据。我已经编写了以下代码。 主数

  • 我正在尝试在Heroku上部署我的Quarkus-app。它工作正常,但我需要使用固定值指定数据源参数。因为Heroku可能会旋转此参数,所以这不是一个真正的好主意。 在Quarkus中,我需要应用程序中的这3个参数。属性: Heroku只给了我1个环境变量(

  • 我尝试在spring boot中使用两个DataSource,并按照教程配置:http://docs.spring.io/spring-boot/docs/1.3.1.release/reference/htmlsingle/#howto-two-dataSources 然后创建2个实体和2个存储库

  • 我在运行我的spring boot项目时遇到了一个问题: 我使用Vaadin来实现UI,使用Maven来实现Dependecies。该数据库是一个MySQL数据库,我严格按照(https://spring.io/guides/gs/accessing-data-mysql/)的说明进行了操作。 说明: 行动: 考虑重新考虑上面的条件,或者在配置中定义一个类型为'javax.sql.DataSour

  • 2018-02-28 13:18:20.062警告15208--[restartedMain]ationConfigEmbeddedWebApplicationContext:上下文初始化过程中遇到异常-取消刷新尝试:org.springFramework.Beans.Factor.UnsatistifiedDependencyException:创建类路径资源[org/springFramewo

  • 我需要创建一个Camel路由,它轮询一个数据库,转换检索到的数据,然后将新实体插入另一个数据库。我需要帮助配置。 为什么它要寻找persistence.xml文件而不是使用注释?我使用的是Spring Boot1.5.13,与Camel 2.21.1一起发布。