Как загрузить конфигурацию базы данных jpa данных Spring из внешнего файла? - PullRequest
0 голосов
/ 16 октября 2019

Поскольку нам нужно развернуть весенний проект на серверах клиентов, мы не можем использовать application.properties для настройки конфигурации базы данных jpa. Затем проекту необходимо динамически загрузить конфигурацию из внешнего файла json, который находится где-то на сервере (не в пакете war). Как это сделать для конфигурации jpa данных Spring?

обновлено: загрузка внешней конфигурации из облака весны кажется хорошей идеей.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Может сделать это так:

@Configuration
public class ExternalPropertyConfigurer {

    @Bean
    public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
        properties.setLocation(new FileSystemResource("config/application.properties"));
        properties.setIgnoreResourceNotFound(false);
        return properties;
    }
}

Для развертывания создайте рядом с .jar config / application.properties

0 голосов
/ 16 октября 2019

Вам нужен двухэтапный процесс.

Шаг 1 Считайте данные конфигурации из файла json.

Шаг 2 Создайте компонент конфигурации источника данных и установите значения, считанные из файла конфигурации.

См. Примерниже

@Configuration
public class DataSourceConfig {

@Bean
public DataSource getDataSource() {

    // This is your custom bean that read the json file  
    MyDataSource dataSource= MyDatasource.load("/path/to/json/file")
    DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.driverClassName(dataSource.getDriver());
    dataSourceBuilder.url(dataSource.getJDBCUrl());
    dataSourceBuilder.username(dataSource.getUsername());
    dataSourceBuilder.password(dataSource.getPassword());
    return dataSourceBuilder.build();
}

}

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