Java springboot 配置文件与多环境配置与运行优先级

 更新时间:2023年04月04日 09:11:00   作者:V红太阳  
这篇文章主要介绍了Java 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指定的默认属性

 配置文件

 到此这篇关于Java springboot 配置文件与多环境配置与运行优先级的文章就介绍到这了,更多相关springboot 配置文件和多环境及运行优先级内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud 服务注册IP错误的解决

    SpringCloud 服务注册IP错误的解决

    这篇文章主要介绍了SpringCloud 服务注册IP错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java实体类转成map的实现

    java实体类转成map的实现

    这篇文章主要介绍了java实体类转成map的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringBoot 项目如何在tomcat容器中运行的实现方法

    SpringBoot 项目如何在tomcat容器中运行的实现方法

    这篇文章主要介绍了SpringBoot 项目如何在tomcat容器中运行的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java 发送http请求(get、post)的示例

    Java 发送http请求(get、post)的示例

    这篇文章主要介绍了Java 发送http请求的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • SpringBoot自定义消息转换器的实现与应用

    SpringBoot自定义消息转换器的实现与应用

    Spring Boot 默认提供了多种消息转换器,如 Jackson 用于 JSON 格式转换、JAXB 用于 XML 格式转换等,然而,实际开发中往往需要根据业务需求进行自定义的消息转换器,文将详细介绍如何在 Spring Boot 中实现自定义消息转换器,探讨其工作原理、配置方式以及实际应用场景
    2025-01-01
  • Java中的线程安全问题详细解析

    Java中的线程安全问题详细解析

    这篇文章主要介绍了Java中的线程安全问题详细解析,线程安全是如果有多个线程在同时运行,而这些线程可能会同时运行这段代码,程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,此时我们就称之为是线程安全的,需要的朋友可以参考下
    2023-11-11
  • Java多线程同步工具类CountDownLatch详解

    Java多线程同步工具类CountDownLatch详解

    这篇文章主要介绍了Java多线程同步工具类CountDownLatch详解,CountDownLatch是一个多线程同步工具类,在多线程环境中它允许多个线程处于等待状态,直到前面的线程执行结束
    2022-06-06
  • Mybatis使用foreach标签实现批量插入方式

    Mybatis使用foreach标签实现批量插入方式

    这篇文章主要介绍了Mybatis使用foreach标签实现批量插入方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • java后台接收app上传的图片的示例代码

    java后台接收app上传的图片的示例代码

    本篇文章主要介绍了java后台接受app上传的图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SpringBoot中操作Redis及工具类的封装详解

    SpringBoot中操作Redis及工具类的封装详解

    在我们项目开发中总是免不了会使用缓存,Redis现在基本是我们公司中非常常见的缓存方案,包括在用户token的缓存,热点信息的缓存等,这篇文章主要讲讲在SpringBoot项目中如何去操作Redis,及最后工具类的封装
    2023-05-05

最新评论