Мне нужна ваша помощь в настройке AbstractRoutingDatasource для нескольких БД в Spring-Boot, чтобы транзакции и Hibernate работали правильно. Я читаю несколько блогов об этом:
- https://fable.sh/blog/splitting-read-and-write-operations-in-spring-boot/
- http://fedulov.website/2015/10/14/dynamic-datasource-routing-with-spring/
- https://kimrudolph.de/blog/spring-datasource-routing
и 1. выглядитмногообещающе, но не содержит
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class })
как в 3 (https://github.com/krudolph/spring-datasource-routing/blob/master/src/main/java/de/kimrudolph/routing/RoutingApplication.java
https://github.com/krudolph/spring-datasource-routing/blob/master/src/main/java/de/kimrudolph/routing/DataSourceConfiguration.java).
Так что мой вопрос в том, что является правильным путемнастроить AbstractRoutingDatasource? Могу ли я просто настроить источники данных, как в 1. (вот исходный код: https://github.com/DominicGunn/fable-spring-read-replica/blob/master/src/main/java/sh/fable/persistence/DataSourceConfig.java), и Spring-Boot автоматически настроит диспетчер транзакций и спящий режим правильно, или мне нужно настроить все вручную, какв 3.?
Желаемое поведение должно быть:
- Я выбираю в своем коде DB1 и запускаю транзакцию, и эта транзакция должна работать изолированно (только на DB1)
- позже я выбираю в своем коде DB2 и запускаю транзакцию, и эта транзакция должна работать изолированно (только для DB2)
- не должно быть разделения объектов / кэшей в Hibernate / JPA между транзакциями на DB1 итранзакции на DB2
- это шоуРаботаю с Spring-Data