Heim >Java >javaLernprogramm >Wie verbinde ich mehrere Spring Data JPA-Repositorys mit verschiedenen Datenquellen in Spring Boot?
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!