Spring Boot, Spring Data JPA mit mehreren Datenquellen
Das Verbinden mehrerer Repositorys mit verschiedenen Datenquellen ist mit Spring Boot und Spring Data JPA möglich. Der referenzierte Blog-Beitrag bietet eine Lösung, aber hier ist ein detaillierterer Ansatz:
Konfiguration:
Erstellen Sie separate Konfigurationsklassen für jede Datenquelle. Nachfolgend finden Sie Beispiele für zwei Datenquellen:
CustomerDbConfig (Erste Datenquelle)
<code class="java">@Configuration @EnableJpaRepositories( entityManagerFactoryRef = "customerEntityManager", transactionManagerRef = "customerTransactionManager", basePackages = {"com.mm.repository.customer"}) public class CustomerDbConfig { // Bean definitions for data source, entity manager factory, and transaction manager for first data source }</code>
OrderDbConfig (Zweite Datenquelle)
<code class="java">@Configuration @EnableJpaRepositories( entityManagerFactoryRef = "orderEntityManager", transactionManagerRef = "orderTransactionManager", basePackages = {"com.mm.repository.order"}) public class OrderDbConfig { // Bean definitions for data source, entity manager factory, and transaction manager for second data source }</code>
Entitäten:
Definieren Sie Entitäten (Modelle) für jede Datenquelle, wie zum Beispiel:
<code class="java">@Entity @Table(name = "customer") public class Customer { // ... } @Entity @Table(name = "order") public class Order { // ... }</code>
Repositorys:
Erstellen Sie Repositorys für jede Entität, wie zum Beispiel:
<code class="java">public interface CustomerRepository extends JpaRepository<Customer, Integer> {} public interface OrderRepository extends JpaRepository<Order, Integer> {}</code>
Anwendung (Hauptklasse):
Stellen Sie in der Hauptanwendungsklasse sicher, dass Alle erforderlichen Beans werden erstellt und der Spring-Anwendungskontext wird eingerichtet.
<code class="java">@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }</code>
Eigenschaften:
Konfigurieren Sie die beiden Datenquellen in der Datei application.properties, einschließlich Details wie URL, Benutzername, Passwort und Treiberklassenname.
<code class="properties"># Customer Data Source spring.datasource.primary.url=... spring.datasource.primary.username=... spring.datasource.primary.password=... spring.datasource.primary.driverClassName=... # Order Data Source spring.datasource.secondary.url=... spring.datasource.secondary.username=... spring.datasource.secondary.password=... spring.datasource.secondary.driverClassName=...</code>
Fehlerbehebung:
Wenn Ausnahmen im Zusammenhang mit fehlenden oder doppelten Beans auftreten, stellen Sie sicher, dass :
Das obige ist der detaillierte Inhalt vonWie verbinde ich mehrere Spring Data JPA-Repositorys mit verschiedenen Datenquellen in Spring Boot?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!