# 仿SpringBoot属性文件加载
> 一般Java应用程序中,用于加载属性文件
maven
```
me.yuxiaoyao.lang
configuration-loader
1.0.0
```
[最新版本见:pom.xml](./pom.xml)
## 依赖
### 1.必须的依赖
```xml
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
```
### 2. 可先依赖(至少有一个,或者两个都加)
```xml
com.fasterxml.jackson.dataformat
jackson-dataformat-yaml
${jackson.version}
com.fasterxml.jackson.dataformat
jackson-dataformat-properties
${jackson.version}
```
如果两个依赖都加的话,文件后缀顺序为:
1. yml - jackson-dataformat-yaml
2. yaml - jackson-dataformat-yaml
3. properties - jackson-dataformat-properties
## 用法
ConnectorProperties.java
```java
@Data
public class ConnectorProperties {
private Connector connector;
private Transfer transfer;
private Redis redis;
@Data
public static class Connector {
private Integer port;
}
@Data
public static class Transfer {
private List urls;
@JsonProperty("test-info")
private String testInfo;
}
@Data
public static class Redis {
private String host;
private Integer port;
private String password;
private int database;
}
}
```
application.yml
```yaml
profile:
active: dev
```
application-dev.yml
```yaml
connector:
port: 9081
transfer:
# all transfer services url
urls: [127.0.0.1:9082]
test-info: test-info-content
redis:
host: ${connector.port}
port: 6379
password:
dababase: 0
```
默认的配置文件为`application.yml/application.yaml/application.properties`
基本用法
```java
ConnectorProperties connectorProperties = ConfigLoader.parseConfig(ConnectorProperties.class);
```
用法:
```
LogSetter.resetLogger();
ConnectorProperties connectorProperties = ConfigLoader.parseConfig(args, ConnectorProperties.class, profile -> {
LogSetter.setLogback("logback", profile);
});
```
**字段和属性名不一致时:**
使用`@JsonProperty("原属性名")` 修饰字段