Spring Boot-使用可变键从application.yml注入映射

时间:2018-09-06 10:30:10

标签: java spring spring-boot yaml

所以我的application.yml应该是这样的:

urls:
  login: http://mylogin.url
restInterceptor:
  log:
    fieldsToHide: {'${urls.login}':'password'}

在我的Java代码中我需要这个:

private Map<String, String> fieldsToHide;

首先,我尝试使用@Value批注,如下所示:

@Value("${restInterceptor.log.fieldsToHide}")
private Map<String, String> fieldsToHide;

但是失败了。看来您无法从带有@Value批注的Yaml注入地图,因此我在this question中尝试了该解决方案。

@Service
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "restInterceptor.log")
public class MyClass {

  private Map<String, String> fieldsToHide;

然后插入地图,但是键的值为'${urls.login}'而不是http://mylogin.url

如果在{'password':'${urls.login}'}中以相反的方式在Yaml中配置地图,则会正确注入属性值。

我在做什么错?这有可能吗?

0 个答案:

没有答案