Mam aplikację Spring Boot, która jest obecnie połączona z jedną bazą danych za pomocą JPA. Szczegóły połączenia w pliku application.properties:
spring.datasource.url=jdbc:oracle:thin:@localhost:1522:orcl
spring.datasource.username=example
spring.datasource.password=example
spring.datasource.driver.class=oracle.jdbc.driver.OracleDriver
Teraz mam nową bazę danych, z którą chciałbym się połączyć, więc moja aplikacja łączy się teraz z 2 bazami danych. Mogę to połączyć za pomocą JDBC, tam będę musiał ręcznie napisać kod połączenia.
Szukałem rozwiązań. Niektóre są w stanie hibernacji z wieloma plikami konfiguracyjnymi. Inni używają JDBC.
Próbowałem poszukać w dokumentacji Spring, czy istnieją przepisy dotyczące definiowania wielu źródeł danych w pliku application.properties, ale nie mogłem nic znaleźć.
Chciałbym wiedzieć, czy istnieje rozwiązanie wykorzystujące tylko JPA. Dziękuję za Twój czas.
2 odpowiedzi
Wykonaj poniższe kroki:
Dodaj dodatkową konfigurację źródła danych do swojego application.properties.
Ustaw dialekt SQL na „default” w pliku application.properties na niech Spring automatycznie wykryje różne dialekty SQL każdego źródła danych
- Utwórz pakiet Java dla każdego źródła danych z dwoma zagnieżdżonymi pakietami
- Utwórz klasę konfiguracji dla pierwszej bazy danych
- Utwórz klasę konfiguracji dla drugiej bazy danych
- Utwórz jednostkę dla pierwszej bazy danych
- Utwórz repozytorium dla pierwszej bazy danych
- Utwórz jednostkę dla drugiej bazy danych
- Utwórz repozytorium dla drugiej bazy danych
Pełny kod jest dostępny tutaj,
https://github.com/jahe/spring-boot-multiple-datasources
Powyższe kroki pochodzą z tych samouczków
https://medium.com/@joeclever/using-multiple-datasources-with-spring-boot-and-spring-data-6430b00c02e7
Mam nadzieję, że to pomoże :)
create Different DataSource bean in your configuration file. you should able to provide all db related configuration in beans
<pre>
@Bean
public DataSource db1(String url, String dbuser, String password) {
}
@Bean
public DataSource db2(String url, String dbuser, String password) {
}
</pre>
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].