为结构体生成一个config方法,调用该方法可以读取配置文件中的属性
使用方式
#[derive(Debug, Deserialize, Configuration)]
#[properties(prefix = "push.file", file = "application.yml")]
#[properties]可以配置的属性
- prefix: 读取配置文件的前缀
- file: 配置文件的路径(可以配置多个file属性)
- http: 配置http属性(可以配置多个http属性)
- url: http的url
- method: 请求方法(只支持get和post两种, 默认是get)
- format: 返回的字符串的格式(支持 toml、json、yaml、yml、json5、ini、ron)
- environment: 是否从环境变量中读取,默认为true
优先级: http > environment > file
示例
#[derive(Debug, Deserialize, Configuration)]
#[properties(
prefix = "push.file",
file = "application.toml",
http(url = "http://127.0.0.1:8080/toml", format = "toml"),
environment = true
)]
#[serde(rename_all(deserialize = "camelCase"))]
struct PushFile {
enable: u8,
app_id: String,
app_key: String,
master_secret: String,
package_name: String,
}
let config = PushFile::config();