【问题标题】:How can I change a property in spring environment?如何在 spring 环境中更改属性?
【发布时间】:2016-01-19 20:43:02
【问题描述】:

我在我的应用程序中使用 spring Environment Bean 来获取应用程序配置属性。 我想在不重新启动应用程序服务器的情况下从 java 代码更改 spring Environment 中的属性值。我该怎么做?

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

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

【问题讨论】:

    标签: java spring


    【解决方案1】:

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

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

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

    【讨论】:

    • 我的环境变量是从 yml 填充的。这种方法还会写入 yml 文件还是只写入变量?
    • 您应该添加代码以实际添加/更改属性。我认为该文档不是很清楚。
    • 查看此代码以添加属性:stackoverflow.com/a/43654266/1206998
    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2022-06-12
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多