在 Spring Boot 应用中,配置的加载优先级是一个重要的概念,它决定了当存在多个相同配置项时,哪个配置会被最终采用。 命令行参数、外部application.yml文件和 JAR 包内部配置的优先级顺序如下:
配置优先级顺序(从高到低)
命令行参数(最高优先级)
通过java -jar app.jar --key=value形式传递的参数
例如:java -jar myapp.jar --server.port=8081
外部配置文件(按以下顺序加载,后加载的覆盖先加载的)
命令行指定的配置文件(--spring.config.location=path/to/config.yml)
当前目录下的config/目录中的配置文件
当前目录中的配置文件
类路径下的config/目录中的配置文件
类路径根目录下的配置文件
JAR 包内部配置文件(最低优先级)
通常是src/main/resources目录下的配置文件
例如:application.yml、application.properties
具体到你的场景
当你启动 JAR 包时,配置的优先级顺序为:
命令行参数(通过--指定的参数)
外部 application.yml 文件(如果存在于当前目录或指定目录)
JAR 包内部的 application.yml 文件
示例说明