搜索
首页Javajava教程Java Spring Boot中多环境配置文件的优先级和方法是什么?

    前言

    提问: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配置文件、多环境配置与运行优先级的方法是什么

    以上是Java Spring Boot中多环境配置文件的优先级和方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文转载于:亿速云。如有侵权,请联系admin@php.cn删除
    如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

    本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

    如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

    本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

    如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

    本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

    如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

    本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

    Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

    Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解锁Myrise中的所有内容
    4 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    MinGW - 适用于 Windows 的极简 GNU

    MinGW - 适用于 Windows 的极简 GNU

    这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    将Eclipse与SAP NetWeaver应用服务器集成。

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    Dreamweaver Mac版

    Dreamweaver Mac版

    视觉化网页开发工具

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版