如何在春季环境中更改属性



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

@Service
public void MyService {
    @Autowired
    private Environment environment;
    public void doSomething(){
        String value = environment.getProperty("myproperty");
        ...
    }
}
默认情况下,

在 Spring 上下文中将获得的Environment实现实际上是 StandardEnvironment 的一个实例。

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

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

最新更新