配置文件路径表达式说明
关于加载顺序,参考上文!
1、主配置
主配置,是指打包到 jar 内部的“资源文件”:
| 配置文件 | 备注 |
|---|---|
app.yml 或 app.properties | 主配置文件,必然会加载(体外配置尽量不要同名) |
app-${solon.env}.yml 或 app-${solon.env}.properties | 环境配置文件。会根据环境自动加载 |
2、扩展配置(v3.0.6 后支持)
扩展配置,是指主配置之外的其它配置:
| 方式 | 说明 |
|---|---|
通过 solon.config.load:[uri](数组形态) 配置 | 方便在主配置指定,支持*表达式 |
通过 solon.config.add:uri,uri(单值形态) 配置 | 方便运行时指定 |
通过 Solon.cfg().loadAdd(uri)(接口形态) 控制 | 方便代码控制 |
uri 表达式说明(v3.0.6 作了统一):
| 表达式 | 说明 |
|---|---|
file:xxx | 外部配置文件(通过 File 接口获取) |
classpath:xxx | 资源配置文件(通过 ClassLoader:getResource 接口获取) |
xxx | 尝试先获取“外部配置文件”,如果没有则尝试 “资源配置文件” |
solon.config.load示例(方便在主配置指定)
solon.config.load:
- "file:config/demo.yml" #不要有空隔
- "file:config/*.yml"
- "classpath:config/demo.yml"
- "classpath:config/*.yml"
- "config/demo.yml"
- "config/*.yml" #会使用 classpath 规则找文件名,如果有外部时则用外部的
solon.config.add示例(方便运行时指定)
java -jar demo.jar -solon.config.add=file:config/demo.yml,classpath:config/demo.yml,config/demo.yml
或者
java -Dsolon.config.add=file:config/demo.yml,classpath:config/demo.yml,config/demo.yml -jar demo.jar
Solon.cfg().loadAdd(uri)示例(方便代码控制)
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app->{
Solon.cfg().loadAdd("file:config/demo.yml");
Solon.cfg().loadAdd("classpath:config/demo.yml");
Solon.cfg().loadAdd("config/demo.yml");
});
}
}
3、动态配置表达式
| 方式 | 说明 | |
|---|---|---|
| 启动参数 | 方便 jvm 或 test 控制 | java -jar demo.jar -solon.env=dev 或 App.main(new String[]{"-solon.env=dev"}) |
| 系统属性 | 方便 jvm 控制 | java -Dsolon.env=dev -jar demo.jar |
| 环境变量 | 方便 docker 控制 | docker run demo -e 'solon.env=dev' |