如何更改弹簧环境中的属性?

时间:2016-01-19 20:43:03

标签: java spring

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

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

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

1 个答案:

答案 0 :(得分:5)

在Spring上下文中默认获得的Environment实现实际上是StandardEnvironment的实例。

StandardEnvironment实现ConfigurableEnvironment,因此如果您注入ConfigurableEnvironment而不是超级接口,您将能够在运行时进行更改。

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