SpringBoot-配置加载顺序
    		       		warning:
    		            这篇文章距离上次修改已过426天,其中的内容可能已经有所变动。
    		        
        		                
                Spring Boot 配置加载顺序通常遵循以下优先级规则:
- 命令行参数。
 - 来自 
SPRING_APPLICATION_JSON环境变量的内联JSON配置。 - 当前目录下的 
application.properties或application.yml文件。 - 外部配置文件,如 
application.properties或application.yml放在配置目录下。 - 在 
SPRING_CONFIG_LOCATION环境变量中指定的外部配置文件。 - 入口点的 
spring.config.location参数。 - 应用程序的 
resource目录中的application.properties或application.yml文件。 - 应用程序的 
resource目录中的application.properties或application.yml文件。 @PropertySource注解指定的配置。- 默认属性。
 
这个加载过程是由SpringApplication类中的prepareEnvironment方法来控制的,它会按照上述顺序依次加载配置。
如果要改变默认的配置加载顺序,可以通过编程方式来指定配置文件的位置,例如:
@SpringBootApplication
public class MySpringBootApplication {
 
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MySpringBootApplication.class);
        app.setAdditionalProfiles("dev");
        app.run(args);
    }
}在这个例子中,我们通过 setAdditionalProfiles 方法添加了一个额外的配置文件后缀名为 dev,Spring Boot 会尝试加载带有 application-dev.properties 或 application-dev.yml 的配置文件。
另外,你可以通过设置 spring.config.location 或 spring.config.import 属性来改变配置文件的默认位置。例如,在命令行中启动应用程序时使用:
java -jar myproject.jar --spring.config.location=file:/path/to/config/这将会让Spring Boot应用程序加载指定路径下的配置文件。
注意,在实际开发中,通常推荐使用 Spring Boot 提供的默认配置加载顺序,这样可以保持配置的灵活性和可维护性。如果需要覆盖或添加特定的配置,可以在 application.properties 或 application.yml 文件中进行,或者在不同的配置文件中进行分模块管理。
评论已关闭