java - Spring boot 仅使用具有两个数据源的主数据源
问题描述
我在 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 工作台以获取创建的模式时,我看到所有实体都是在 userdb 中创建的。
解决方案
我通过更改像这篇文章这样的配置文件来解决我的问题:
https://springframework.guru/how-to-configure-multiple-data-sources-in-a-spring-boot-application/
推荐阅读
- php - 从不同于我正在工作的 PHP 服务器发送 mail()
- c# - 为什么派生类中不调用该方法
- excel - 为什么我在打破公式时会出错?
- c# - null 的可空日期时间验证
- java - Makefile:致命错误:jni.h:没有这样的文件或目录
- mysql - 如何使用 Play JSON 为 MySQL 创建 Doobie Meta 实例?
- java - JPA:如何仅与 ID 而不是对象建立关系?
- python-3.x - 在单类汽车上训练,但预测其他类
- visual-studio-code - 在 VS Code 中,有没有办法打开所有有合并冲突的文件?
- javascript - 添加播放按钮以触发javascript时间滑块?