Spring Boot @ConfigurationProperties-更改属性键

时间:2018-10-24 04:03:05

标签: java spring-boot

我有一个有趣的用例,其中用@ConfigurationProperties注释的类中使用的字段名称应与(yaml)配置文件中使用的对应键不同:

@ConfigurationProperties("foo")
class ConfProps {

    private List<SomePojo> bar = new ArrayList<>();

    // getter, setter

}

这将“注意” foo.bar。是否可以将字段bar映射到其他属性键?

我读了the docs和一些相关文章,但是什么也没有……

在我看来,要么是因为它绝对是微不足道的,要么是某种非目标。

谢谢!

1 个答案:

答案 0 :(得分:5)

那么您不能使用其他配置键和映射属性名称。这就是spring解决自动映射的方式。

但是,如果拥有一个不同的属性字段对您来说至关重要,那么您可能会遭到黑客入侵。

像这样放置一个虚拟的塞特犬。

属性键: foo.bar

配置类:

@ConfigurationProperties("foo")
class ConfProps {

    private List<SomePojo> differentlyNamedList = new ArrayList<>();

    // getter, setter

    public void setBar(List<SomePojo> bar){
       this.differentlyNamedList = bar;
    }
}