配置加载规则
Rain 的 ConfigImpl 从 classpath 与运行目录读取配置,并合并为统一树结构。
加载位置
按顺序处理以下来源:
- classpath
conf/module:模块默认配置。 - classpath
conf:应用通用配置。 - classpath
conf/{runMode}:环境配置。 - 运行目录
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.1yaml
# src/main/resources/conf/prod/application.yml
server:
port: 80启动后可通过 server.port 和 server.hosts 读取对应值。Rain 还会写入 rain.runMode,并把启动包追加到 rain.scanPackages。