Skip to content

配置加载规则

Rain 的 ConfigImpl 从 classpath 与运行目录读取配置,并合并为统一树结构。

加载位置

按顺序处理以下来源:

  1. classpath conf/module:模块默认配置。
  2. classpath conf:应用通用配置。
  3. classpath conf/{runMode}:环境配置。
  4. 运行目录 conf:部署时外部配置。

支持 .properties.yml / .yaml.json

运行模式

可通过 JVM 系统属性指定:

bash
java -Drain.runMode=prod -jar app.jar

若未显式设置,在含 Maven 或 Gradle 构建文件的目录运行时默认为 dev,其他情况下为 prod

覆盖关系

对于同一文件名,通用配置先加载,随后由当前运行模式覆盖,最后由运行目录配置覆盖。模块默认配置最先合并,应用配置可覆盖它。

yaml
# src/main/resources/conf/application.yml
server:
  port: 8080
  hosts:
    - 127.0.0.1
yaml
# src/main/resources/conf/prod/application.yml
server:
  port: 80

启动后可通过 server.portserver.hosts 读取对应值。Rain 还会写入 rain.runMode,并把启动包追加到 rain.scanPackages

基于 Apache License 2.0 发布