dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
29.09k stars 7.51k forks source link

新增功能:properties文件读取后自动封装成java对象 #499

Closed joey-happy closed 5 years ago

joey-happy commented 5 years ago

properties文件如下:

Simple properties

mail.host=mailer@mail.com mail.port=9000 mail.from=mailer@mail.com

List properties

mail.defaultRecipients[0]=admin@mail.com mail.defaultRecipients[1]=owner@mail.com

Map Properties

mail.additionalHeaders.redelivery=true mail.additionalHeaders.secure=true

Object properties

mail.credentials.username=john mail.credentials.password=password mail.credentials.authMethod=SHA1

java对象如下: public class ConfigProperties { public static class Credentials { private String authMethod; private String username; private String password; }

private String host;
private int port;
private String from;
private Credentials credentials;
private List<String> defaultRecipients;
private Map<String, String> additionalHeaders;

}

期望结果: 调用Pros类的某个方法 直接给我返回一个ConfigProperties对象

参考:https://leokongwq.github.io/2018/11/16/springboot-ConfigurationProperties.html

looly commented 5 years ago

4.6.3增加此方法,使用方式如下:

Props props = Props.getProp("to_bean_test.properties");
ConfigProperties cfg = props.toBean(ConfigProperties.class, "mail");
joey-happy commented 5 years ago

如果对象Credentials中在包含对象的话 好像就解析不了了 解析层级只支持到1级?

looly commented 5 years ago

可以解析,前提是要有setter方法