《springboot实战》第二章 springboot 配置文件、多环境配置、运行优先级

简介: 《springboot实战》第二章 springboot 配置文件、多环境配置、运行优先级

前言

提问:springboot项目,开发环境、测试环境和生产环境配置文件如何分开表示?

答:多profile文件方式

1、多环境配置(profile)

1.1、properties文件配置

application.properties:主配置文件
主配置文件配置决定加载哪个环境的配置文件

spring.profiles.active=dev

根据spring.profiles.active值,选择加载不同环境配置

application-{profile}.properties

开发、测试、生产环境配置文件:

  • application-dev.properties:开发环境配置文件
  • application-test.properties:测试环境配置文件
  • application-prod.properties:生产环境配置文件

1.2、YML文件配置

application.yml:主配置文件
主配置文件配置决定加载哪个环境的配置文件

spring:
      profiles:
          active:dev

根据spring.profiles.active值,选择加载不同环境配置

application-{profile}.yml

开发、测试、生产环境配置文件:

  • application-dev.yml:开发环境配置文件
  • application-test.yml:测试环境配置文件
  • application-prod.yml:生产环境配置文件

1.3、修改主配置文件切换配置

1.3.1、切换生产配置

#默认配置
server:
  port: 8080
#切换配置
spring:
  profiles:
    active: prod

1.3.2、切换开发配置

#开发环境配置
server:
  port: 8080
#切换配置
spring:
  profiles:
    active: dev

1.3.3、切换测试配置

#测试环境配置
server:
  port: 8080
#切换配置
spring:
  profiles:
    active: test

1.4、命令行激活配置文件

1.4.1、命令行激活配置文件

java -jar springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

1.4.2、虚拟机参数激活

java -Dspring.profiles.active=dev -jar springboot-0.0.1-SNAPSHOT.jar

2、默认配置文件

Spring Boot 启动时会扫描以下 5 个位置的 application.properties 或 apllication.yml 文件,并将它们作为 Spring boot 的默认配置文件。

  • file:./config/*/
  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/

2.1、file

指当前项目根目录;

2.2、classpath

指当前项目的类路径,即 resources 目录。

注意事项:

  • 位于相同位置的 application.properties 的优先级高于 application.yml
  • 所有位置的文件都会被加载,高优先级配置会覆盖低优先级配置,形成互补配置,即:
  • 存在相同的配置内容时,高优先级的内容会覆盖低优先级的内容;
  • 存在不同的配置内容时,高优先级和低优先级的配置内容取并集。

3、外部配置文件

可通过指定外部配置文件的路径(默认配置文件失效)

3.1、spring.config.location

java -jar xxxx.jar --spring.config.location=外部文件

3.2、spring.config.additional-location

默认配置文件公共生效,其优先级是最高。

java -jar xxxx.jar --spring.config.additional-location=外部文件
案例

4、配置文件优先级

以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低):

  • 命令行参数
  • 配置文件(YAML 文件、Properties 文件)
  • @Configuration 注解类上的 @PropertySource 指定的配置文件
  • 通过 SpringApplication.setDefaultProperties 指定的默认属性

配置文件

目录
相关文章
|
8月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1017 0
|
2月前
|
负载均衡 IDE Java
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
69 9
SpringBoot整合XXL-JOB【04】-  以GLUE模式运行与执行器负载均衡策略
|
7月前
|
Java 应用服务中间件 Spring
为什么SpringBoot的 jar 可以直接运行?
SpringBoot的 jar 可以直接运行的原因
519 2
|
4月前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
492 2
|
4月前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
94 1
|
4月前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
292 3
|
4月前
|
安全 Java 应用服务中间件
如何将Spring Boot应用程序运行到自定义端口
如何将Spring Boot应用程序运行到自定义端口
125 0
|
5月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
342 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
5月前
|
XML Java 应用服务中间件
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
338 2
|
7月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)