如何从外部文件加载spring data jpa的数据库配置?

时间:2019-10-16 03:07:32

标签: spring spring-boot spring-data-jpa

由于我们需要在客户端的服务器上部署spring项目,因此无法使用application.properties来设置jpa的数据库配置。然后,该项目需要从位于服务器某处(而不是war软件包中)的外部json文件动态加载配置。对于spring data jpa配置该怎么做?

已更新: 从Spring Cloud加载外部配置似乎是个好主意。

2 个答案:

答案 0 :(得分:0)

也许这样做:

@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

附近创建

答案 1 :(得分:-1)

您需要两步过程。

步骤1从json文件中读取配置数据。

第2步,创建一个数据源配置Bean,并将值设置为从配置文件读取的值。

请参阅下面的示例

@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();
}

}