由于我们需要在客户端的服务器上部署spring项目,因此无法使用application.properties来设置jpa的数据库配置。然后,该项目需要从位于服务器某处(而不是war软件包中)的外部json文件动态加载配置。对于spring data jpa配置该怎么做?
已更新: 从Spring Cloud加载外部配置似乎是个好主意。
答案 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();
}
}