当具有构造函数arg,child的父有更多成员时,可以从yml初始化子bean

时间:2018-03-09 15:10:01

标签: java spring javabeans

假设我有一个有一个成员的父类:

public class Person {

    private String name;


    public void setName(String aName) {
        this.name = aName;
    }

    public String getName() {
         return this.name;
    }
}

我有一个配置类,如:

@Configuration
@ConfigurationProperties
public class ApplicationConfig {

  private final List<Person> persons = 
      new ArrayList<Person>();



  public List<Person> getPersons() {
    return persons;
}

我想从application.yml文件中初始化一组人:

persons:
 - Bob
 - Eva
 - Robin

我发现这个作品提供的人被定义为:

public class Person {

    private String name;

    public Person(String aName) {
      this.name = aName;
    }

    public String getName() {
         return this.name;
    }
}

但是一旦我介绍员工扩展人员,员工有employeeNumber,它就会崩溃。 理想情况下我想这样做 - 但这是无效的yml:

persons:
 - Bob
 - Eva
 - Robin
employees:
 - Tim
   employeeNum: 123

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有找到其他方法,然后使用getter和setter定义parend和child类(因此没有构造函数参数!),并将.yml定义为:

persons:
  - name: Bob
  - name: Eva
  - name: Robin
employees:
  - name Tim
    employeeNum: 123