Solon v3.0.6

配置文件路径表达式说明

</> markdown

关于加载顺序,参考上文!

1、主配置

主配置,是指打包到 jar 内部的“资源文件”:

配置文件备注
app.ymlapp.properties主配置文件,必然会加载
app-${solon.env}.ymlapp-${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'