<mark>此插件，主要社区贡献人（rabbit）</mark>

```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-config-yaml</artifactId>
</dependency>
```

#### 1、描述

基础扩展插件，为 solon 增加 yaml 的配置支持。即把 yaml 配置加载到 `Solon.cfg()`。但是它没有强大的配置注入能力。需要借助：

* solon-config-snack4
* 或者 solon-config-snack3 [v3.7.0 后标为弃用]


#### 2、配置参考

* app.yml（会默认加载）

```yml
server.port: 8080

solon.app:
  group: "demo"
  name: "demoapp"
```
  
* demo.yml（需手动加载）

```yml
user.name: "noear"
user.level: 0
``` 

#### 3、配置增强

* 添加外部扩展配置（用于指定外部配置。策略：先加载内部的，再加载外部的盖上去）

```yaml
solon.config.add: "./app.yml" #把文件放外面（多个用","隔开） //替代已弃用的 solon.config
```

* 添加多个内部配置（在 app.yml 之外，添加配置加载）//v2.2.7 后支持

```yaml
solon.config.load:
  - "app-ds-${solon.env}.yml"     #可以是环境相关的
  - "app-auth_${solon.env}.yml"
  - "config/common.yml"           #也可以环境无关的或者带目录的
```

#### 4、多片段加载（v2.5.5 后支持）

例：app.yml

```yaml
solon.env: pro

---
solon.env.on: pro
demo.auth:
  user: root
  password: Ssn1LeyxpQpglre0
---
solon.env.on: dev | test
demo.auth:
  user: demo
  password: 1234
```

#### 5、代码应用

```java
public class DemoApp{
    public static void main(String[] args){
        Solon.start(DemoApp.class, args, app -> {
            //手动加载配置文件
            app.cfg().loadAdd("demo.yml");
        });
    }
    
    @Inject("${demo.name}")
    public String demoName;
}
```
