说我有这个属性文件:
students.bill.firstname=John
students.bill.lastname=Doe
students.bill.age=20
students.jim.firstname=Jim
students.jim.lastname=Wright
students.jim.age=21
.
.
.
我想要一个xml bean,其中包含以其名字作为键的学生的地图。
对象示例:
学生.java
public class Student {
String firstname;
String lastname;
Integer age;
}
课堂.java
public class Classroom {
Map<String, Student> students;
}
我要寻找的是一种可能的说法,可以从properties.bill。*属性创建一个学生bean,然后将其添加到教室bean映射中。然后为students.jim。*创建一个,并将其添加到教室bean映射中。我真的不想为每个学生创建一个bean,然后将每个价值都放入其中。
从Spring 0.9开始,Spring已经开箱即用地支持该功能(但很少有人知道这一点)。
您将需要稍微修改属性文件。
student.(class)=your.package.here.Student
student.(abstract)=true
jim.(parent)=student
jim.firstname=Jim
jim.lastname=Wright
jim.age=21
... Other student based definitions here.
现在您可以将aBeanFactory
和PropertiesBeanDefinitionReader
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(bf);
reader.loadBeanDefinitions(new ClassPathResource("students.properties"));
Map<String, Student> students = bf.getBeansOfType(Student.class);
现在,如果您有一个新学生,只需将其添加到属性文件中并重新加载。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句