任何人都可以爲我提供一些關於實現此目標的最佳方式的指導。Spring Boot:從數據庫檢索配置
我想擴展Spring Boot Externalized Configuration,這樣我就可以在我的應用程序的任何地方調用一個方法。該方法將使用鍵檢索屬性值。此方法將首先詢問數據庫表,如果未找到指定的鍵,則它將回落到1中所述的PropertySource順序。
所以我也有類似的服務:
@Service
public class ConfigurationService {
private final ConfigurationRepository configurationRepository;
@Autowired
public ConfigurationService(ConfigurationRepository configurationRepository) {
this.configurationRepository = configurationRepository;
}
public String getValue(String key) {
Configuration configuration = configurationRepository.findOne(key);
// Add something here to get the property from application.properties if the key does not exist in the db
return configuration == null ? null : configuration.getValue();
}
}
,我可以使用如下:
foo = configuration.getValue("my.property");
有沒有要去這個更好的辦法?我錯過了我可以使用的Spring Boot功能嗎?
編輯:我希望能夠在應用程序運行時更改屬性的值,並獲取這些新值。
根據項目/部署規模有多大,這聽起來像一個潛在的Spring Cloud配置案例。 – chrylis
編寫一個由數據庫支持的'PropertySource',這樣它就可以與系統的其他部分集成。或者簡單地寫一個'ApplicationInitializer',它加載數據庫中的所有屬性,將它們包裝在一個'PropertiesPropertySource'中並將它們添加到環境中。至少你不想在你想要與默認機制集成的整個地方調用這個方法。 –
如何在數據庫鏈接中使用緩存來存儲鍵值對 – ema