Verwendung von @EnableAutoConfiguration und application.properties:
Beispiel application.properties:
# Primary Data Source spring.datasource.url=jdbc:h2:mem:default spring.datasource.username=sa spring.datasource.password= # Additional Data Source additional.datasource.url=jdbc:h2:mem:additional additional.datasource.username=anotheruser additional.datasource.password=anotherpassword
Beispielkonfigurationsklasse für Primäre Datenquelle:
<code class="java">@Configuration @EnableTransactionManagement @EnableAutoConfiguration @EnableJpaRepositories( entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager", basePackages = {"com.example.repository.primary"}) public class PrimaryDataSourceConfig { @Bean public EntityManagerFactory entityManagerFactory() { // Create and configure EntityManagerFactory manually } @Bean public PlatformTransactionManager transactionManager() { // Create and configure PlatformTransactionManager manually } }</code>
Beispielkonfigurationsklasse für zusätzliche Datenquelle:
<code class="java">@Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "additionalEntityManagerFactory", transactionManagerRef = "additionalTransactionManager", basePackages = {"com.example.repository.additional"}) public class AdditionalDataSourceConfig { @Value("${additional.datasource.url}") private String url; @Value("${additional.datasource.username}") private String username; @Value("${additional.datasource.password}") private String password; @Bean public DataSource additionalDataSource() { // Create and configure DataSource manually } @Bean public EntityManagerFactory additionalEntityManagerFactory() { // Create and configure EntityManagerFactory manually } @Bean public PlatformTransactionManager additionalTransactionManager() { // Create and configure PlatformTransactionManager manually } }</code>
Beispielserviceklasse mit Transaktionsanmerkungen:
<code class="java">@Service @Transactional("transactionManager") // Use primary transaction manager public class PrimaryService { // ... } @Service @Transactional("additionalTransactionManager") // Use additional transaction manager public class AdditionalService { // ... }</code>
Dieser Ansatz bietet mehr Kontrolle und Flexibilität beim Arbeiten mit mehreren Datenquellen in Spring Boot-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie konfiguriere und verwende ich mehrere Datenquellen in Spring Boot mit Spring Data JPA?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!