1

我想读取一个具有数组格式的属性文件。

我有这个属性文件:

students.student[0] = ABC
students.student[0].marks[0] = 10
students.student[0].marks[1] = 20
students.student[0].marks[2] = 30
students.student[0].marks[3] = 40
students.student[0].marks[4] = 50
students.student[0].marks[5] = 60
students.student[0].marks[6] = 70

students.student[1] = XYZ
students.student[1].marks[0] = 10
students.student[1].marks[1] = 20
students.student[1].marks[2] = 30
students.student[1].marks[3] = 40
students.student[1].marks[4] = 50
students.student[1].marks[5] = 60
students.student[1].marks[6] = 70

我正在尝试按如下方式读取此属性文件:

@ConfigurationProperties("students")
@PropertySource("classpath:student.properties")
public class StudentProperties{
   List<Student> students = new ArryaList<Student>();
   public static class Student
   {
      String name;
      List<Marks> marks = new ArrayList<Marks>;
      public static class Marks
      {
         int marks;
          //getters and setters
      }     
      //getters and setters
   }
   //getters and setters
 }

但它不是设定值。这个怎么做?

4

2 回答 2

1

映射 POJO 格式不正确,在Student课堂上就有List<Integer>

@ConfigurationProperties("students")
@PropertySource("classpath:student.properties")
public class StudentProperties{
List<Student> student = new ArryaList<Student>();
   public static class Student
      {
         String name;
         List<Integer> marks = new ArrayList<Integer>();

        //getters and setters
     }
     //getters and setters
  }
于 2019-03-01T16:05:26.587 回答
0

虽然可能以某种形式(从属性文件读取列表并使用 spring 注释 @Value 加载),但这将被视为对 application.properties 文件的滥用,该文件旨在用于配置而不是用作数据存储。

我建议您将数据保存在CSV文件中,并使用众多合适的库之一解析它们,例如 -如何轻松将 CSV 文件处理为 List<MyClass>

于 2019-03-01T14:46:46.303 回答