springboot项目不同环境的配置读取方式

 更新时间:2024年11月08日 09:05:17   作者:北极熊不在北极  
SpringBoot支持application.properties、application.yml、application.yaml三种配置文件类型,可同时存在并合并配置,配置文件的读取优先级为:application.properties > application.yml > application.yaml,不同位置的相同类型配置文件

一、首先我知道的是

springboot项目可以使用如下3种类型配置文件,并且可以同时存在。

springboot读取到的不同配置内容会进行合并,如果有配置了相同的配置项,则以如下优先顺序进行生效:

application.properties > application.yml > application.yaml

二、相同类型配置文件

放在不同位置,生效优先顺序如下:

  • 1级: springboot-demo.jar同级目录: config/application.yml[最高)
  • 2级: springboot-demo.jar同级目录 : application.yml
  • 3级: classpath: config/application.yml
  • 4级: classpath: application.yml

三、在一个配置文件中

也可以配置如下不同的环境配置

#设置启用的环境
spring:
  profiles:
    active: dev

---
spring:
  profiles: dev
server:
  port: 81


---
spring:
  profiles: test
server:
  port: 82


---
spring:
  profiles: pro
server:
  port: 83

四、在application.yml文件中可以读取到pom文件中的配置

可用于配置当前环境

#设置启用的环境
spring:
  profiles:
    active: ${profile.active}

---
spring:
  profiles: dev
server:
  port: 81


---
spring:
  profiles: test
server:
  port: 82


---
spring:
  profiles: pro
server:
  port: 83

pom文件中的配置如下:

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>utf-8</encoding>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>
<profiles>
        <!--dev环境-->
        <profile>
            <id>dev</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
        </profile>

        <!--test环境-->
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>

        </profile>

        <!--pro环境-->
        <profile>
            <id>pro</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用ANT与YUI压缩js的实现方法

    使用ANT与YUI压缩js的实现方法

    本篇文章是对使用ANT与YUI压缩js的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • POI导出Excel报错No such file or directory的解决方法

    POI导出Excel报错No such file or directory的解决方法

    这篇文章主要为大家详细介绍了POI导出Excel报错No such file or directory的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • SpringBoot+WebSocket实现即时通讯功能(J2EE方式)

    SpringBoot+WebSocket实现即时通讯功能(J2EE方式)

    WebSocket是一种在单个TCP连接上进行全双工通信的协议,WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,本文给大家介绍了SpringBoot+WebSocket实现即时通讯功能(J2EE方式),需要的朋友可以参考下
    2025-01-01
  • Spring框架实现依赖注入的原理

    Spring框架实现依赖注入的原理

    依赖注入是由“依赖”和“注入”两个词汇组合而成,那么我们再一次顺藤摸瓜,分别分析这两个词语,这篇文章主要介绍了Spring DI依赖注入详解,需要的朋友可以参考下
    2023-04-04
  • java实现插拔式加载用户自定义插件

    java实现插拔式加载用户自定义插件

    本文主要介绍了DatalinkX通过自定义URLClassLoader实现插件化加载外部数据源jar包,突破SPI机制依赖限制,使用户无需修改源码即可扩展数据源同步功能,达成动态插拔效果
    2025-09-09
  • java实现停车场系统

    java实现停车场系统

    这篇文章主要为大家详细介绍了java实现停车场系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Java内存之happens-before和重排序

    Java内存之happens-before和重排序

    在JMM(Java内存模型)中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系。下面小编来简单介绍一下
    2019-05-05
  • Java 并发编程面试题Future 模式及实现方法

    Java 并发编程面试题Future 模式及实现方法

    FutureTask是Future接口的一个实现,常与Callable一起使用,CompletableFuture是Java8引入的,扩展了Future的功能,支持异步任务的编排和组合,提供了更强大的函数式编程能力,这篇文章主要介绍了Java 并发编程面试题Future 模式及实现方法,需要的朋友可以参考下
    2025-04-04
  • IDEA消除指定警告的两种方法小结

    IDEA消除指定警告的两种方法小结

    有时候IDEA会代码中给出一些我们不需要的警告,看起来就很不美观,本文主要介绍了IDEA消除指定警告的两种方法,感兴趣的可以了解一下
    2023-08-08
  • Quartz与Spring集成的两种方法示例

    Quartz与Spring集成的两种方法示例

    这篇文章主要为大家介绍了Quartz与Spring集成的两种方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04

最新评论