我正在嘗試使用 Spring JPA 撰寫資料庫同步實用程式,其中我有一個具有相同架構的源資料庫和目標資料庫。如何重用物體物件、存盤庫?目前我遇到了無法實體化存盤庫 bean 的問題,因為它已經與第一個(源)資料源相關聯。
我相信,@Profile 不能在這里使用,因為源 bean 和目標 bean 必須共存。
欣賞你的想法。
uj5u.com熱心網友回復:
可以使用 Spring 創建多個資料源。
@Configuration
public class JpaConfig {
@Bean(name = "source")
public DataSource h2DataSource() {
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName("org.h2.Driver");
dataSourceBuilder.url("jdbc:h2:file:C:/temp/test");
dataSourceBuilder.username("sa");
dataSourceBuilder.password("");
return dataSourceBuilder.build();
}
@Bean(name = "target")
@Primary
public DataSource mySqlDataSource() {
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.url("jdbc:mysql://localhost/testdb");
dataSourceBuilder.username("dbuser");
dataSourceBuilder.password("dbpass");
return dataSourceBuilder.build();
}
}
然后,您可以從依賴注入中獲取資料源。您可以命名它們source,target以便跟蹤它們。
@Qualifier("source")
DataSource source;
@Qualifier("target")
DataSource target;
uj5u.com熱心網友回復:
這是您的問題的解決方案,具有一些理論背景,使理解更容易。附帶一個 Github 上的作業示例。
我建議你克隆 repo,讓它運行和作業,然后復制必要的代碼片段。
https://reflectoring.io/flyway-spring-boot-multitenancy/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/345732.html
上一篇:Node.js github頁面
