Spring JPA Datasource Cra sh Recovery и Dynami c Изменения во время выполнения - PullRequest
1 голос
/ 14 апреля 2020

Привет! Я использую Spring jpa, и, насколько я понимаю, его рабочий механизм действительно создан сразу за одно целое.

Можно ли изменить или воссоздать источник данных в рабочей среде. если я не остановлю приложение в это время, все мои вызовы будут исключены. У меня есть механизм для проверки пароля и его динамического изменения, и мои другие запросы получают новый пароль, создают новый источник данных и продолжают работать.

И еще один вопрос - я иметь несколько источников данных, при запуске приложения, если один из этого источника данных получит исключение в тот момент, когда мое приложение не может запуститься. Что я хочу, если один из источников данных не работает, приложение может продолжить прогрев и попытаться проверить создание источника данных для каждого связанного запроса.

Я не хочу создавать persistencejpaconfig каждый запрос, но я хочу вносить изменения в источник данных в каждом запросе, если он необходим

@Configuration
@EnableTransactionManagement
public class PersistenceJPAConfig{

....

@Bean
public DataSource dataSource(){
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName("********");
    dataSource.setUrl("*********");
    dataSource.setUsername( "**********" );
    dataSource.setPassword( "********" );
    return dataSource;
}

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете просто реализовать свой собственный DataSource, который делегирует действительный DataSource и создает новый при смене пароля.

DelegatingDataSource могут быть полезны либо в качестве базового класса, либо, поскольку вы собираетесь изменить DataSource в качестве шаблона для реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...