如何在Spring Boot属性文件中覆盖变量

时间:2018-07-24 07:29:58

标签: spring-boot

我有一个如下所示的现有属性文件

csv.requireresync=true

系统中有两个动作可以获取并为其设置值。

  1. 每隔5分钟就会有一个将csv.requireresync设置为false的过程。

  2. 每2周就会有一个将csv.requireresync设置为true的过程。

我尝试使用@Component来完成上述操作,但不起作用

@Component
@ConfigurationProperties(prefix = "csv")
public class ResyncConfig {

    private boolean requireresync;

    public void setRequireresync(boolean requireresync) {
        this.requireresync = requireresync;
    }

    public boolean isRequireresync() {
        return requireresync;
    }
}

这个想法是当我调用setRequireresync为true时,该值必须反映在application.properties文件中。

能否实现我想要的?还是我需要一个额外的配置文件?

1 个答案:

答案 0 :(得分:1)

只需将所需的值直接设置为ResyncConfig。它在应用程序之间共享(如果不使用Scopes的单例),则对其所做的任何更改都将生效。该文件仅用于使用初始设置引导配置类。