如何在Spring的ConfigurableEnvironment中更改/更新/删除属性
问题内容:
在Spring中,您可以使用注入一个Environment对象来读取所有环境属性
@Resource
private org.springframework.core.env.Environment environment;
所以问题是我可以通过编程方式更改某些属性的值吗?
我看到的唯一解决方法是获取保存此属性的所有MutablePropertySource。将其从环境中完全删除,并添加一个新的PropertySource,其中包含前一个属性的所有属性+更改后的属性(或已删除的属性)。
但是,这看起来很丑,而且会很慢;(
问题答案:
// ConfigurableEnvironment env
MutablePropertySources propertySources = env.getPropertySources();
Map<String, Object> map = new HashMap<>();
map.put(myObject.getKey(),
myObject.getQuery());
propertySources
.addFirst(new MapPropertySource("newmap", map));