说明
在需要设置属性的地方标记@Value注解,库会自动为变量设置值,值的来源为
配置文件
使用方法
- 使用load方法加载一个外部配置文件,文件路径可以为字符串, uri, url
- 使用get方法获取设置完成的类,get方法的参数为要设置的类的class
- 库会自动设置所有标记@Value的类
- @Value注解只能设置在类本身,类的公共变量上,公共set方法上,以及公共构造函数的参数上,
库内部会按照构造函数参数->公共变量->公共set方法的顺序设置值 - 库寻找构造函数的方法是从带参构造函数选择一个进行设置,建议只设置一个带参构造函数。
如果没有带参构造函数,则使用无参构造函数进行设置 - 使用setTable方法自定义值的设置方法,第一个参数为要设置的值的类型class, 第二个参数为
方法的lambda表达式,此lambda表达式需要一个参数作为待转换的原始值
测试
Main.java
import java.io.FileNotFoundException;
public class Main {
public static void main(String[] args) {
try {
var loader = new LoadProperties(Main.class);
loader.load(Main.class.getResource("student.prop"));
System.out.println(loader.get(Student.class));
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
}
}
}
Student.java
@Value
public record Student(
@Value("姓名") String name,
@Value("年龄") int age,
@Value("身份证号") String id,
@Value("院系") String department,
@Value("专业") String major,
@Value("成绩排名") String rank
) {
}
student.prop
姓名=forest_rabbit
身份证号=000000000000000000
院系=某某某学院
专业=某某某
成绩排名=前40%
年龄=22
结果输出
Student[name=forest_rabbit, age=22, id=000000000000000000, department=某某某学院, major=某某某, rank=前40%]