首页 > 解决方案 > ConfigurationProperties 加载取决于值

问题描述

这是我的 yaml 文件,我想加载我的属性取决于激活值。

emp:
 activate: a
 a: 
  param1: value1
  param2: value2
 b:
  param1: value1
  param2: value2

如果激活值为'a'然后加载'a',我想这样做。

在我的源代码 AppConfig 上

@Getter @Setter
@Configuration
@ConfigurationProperties @RequiredArgsConstructor
public class AppConfig {
 @NestedConfigurationProperty
 private final EmpConfig empConfig;
}

我的 EmpConfig

@Configuration
@ConfigurationProperties(prefix = "emp")
public class EmpConfig {
private String activate;
private Emp a;
private Emp b;

public Emp getEmpConfig(){
    if(activate.equals("a"))
        return a;
    return b;
}

@Getter
@Setter
public static class Emp {
    private String param1;
    private String param2;
}
}

但是那些代码得到了 bean 创建错误。有什么好的方法可以解决这个问题吗?

标签: javaspring

解决方案


推荐阅读