配置文件路径表达式说明
关于加载顺序,参考上文!
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.evn=dev -jar demo.jar |
环境变量 | 方便 docker 控制 | docker run demo -e 'solon.env=dev' |