Java 如何在spring环境中更改属性?

Java 如何在spring环境中更改属性?,java,spring,Java,Spring,我在应用程序中使用spring环境Bean来获取应用程序配置属性。 我想从java代码更改spring环境中属性的值,而无需重新启动应用程序服务器。我该怎么做 @Service public void MyService { @Autowired private Environment environment; public void doSomething(){ String value = environment.getProperty("mypro

我在应用程序中使用spring环境Bean来获取应用程序配置属性。 我想从java代码更改spring环境中属性的值,而无需重新启动应用程序服务器。我该怎么做

@Service
public void MyService {
    @Autowired
    private Environment environment;

    public void doSomething(){
        String value = environment.getProperty("myproperty");
        ...
    }
}

在Spring上下文中默认获得的
环境
实现实际上是的一个实例

StandardEnvironment
实现,因此,如果插入
ConfigurableEnvironment
而不是超级接口,则可以在运行时进行更改

@Service
public void MyService {
    @Autowired private ConfigurableEnvironment environment;

我的环境变量是从yml填充的。这种方法也会写入yml文件还是只写入变量?您应该添加代码来实际添加/更改属性。我认为文档不是非常清晰。有关添加属性的代码,请参见以下内容: