java自动导入配置文件的库

文章介绍了如何在Java项目中使用@Value注解从配置文件自动设置类的属性值。通过LoadProperties类的load方法加载外部配置文件,然后使用get方法获取设置好值的对象。@Value注解可以用于类、公共变量、公共set方法和构造函数参数。示例展示了在Student记录类中使用@Value注解从student.prop文件加载数据。
摘要由CSDN通过智能技术生成

项目gitee地址

说明

在需要设置属性的地方标记@Value注解,库会自动为变量设置值,值的来源为
配置文件

使用方法

  1. 使用load方法加载一个外部配置文件,文件路径可以为字符串, uri, url
  2. 使用get方法获取设置完成的类,get方法的参数为要设置的类的class
  3. 库会自动设置所有标记@Value的类
  4. @Value注解只能设置在类本身,类的公共变量上,公共set方法上,以及公共构造函数的参数上,
    库内部会按照构造函数参数->公共变量->公共set方法的顺序设置值
  5. 库寻找构造函数的方法是从带参构造函数选择一个进行设置,建议只设置一个带参构造函数。
    如果没有带参构造函数,则使用无参构造函数进行设置
  6. 使用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%]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值