Springboot的application.properties或application.yml环境的指定运行与配置方式

 更新时间:2025年11月21日 09:01:52   作者:愿心无迫  
本文主要介绍了Spring Boot中配置文件的多种使用方式,包括配置文件的命名、激活、路径指定以及优先级,并结合示例进行了详细说明

1.关于多个配置环境的指定运行

我们在主配置文件编写的时候,文件名可以是:application-{profile}.properties/yml

两种文件的格式:

​默认全局配置文件:

  • application.properties : k=v,或行内写法(k: v,[Set/List/数组] {map,对象类型的属性},并且 []可省,{}不能省)
  • application.yml : yaml ain't myarkup language ,不是一个标记文档

注意:

1. k:空格v 2.通过垂直对齐 指定层次关系 3.默认可以不写引号; ""会将其中的转义符进行转义,其他不会

一般分为开发、测试、运行,命名要求要规范,下图有详细示例

1.1多个properties

默认使用application.properties的配置

目录可以如下:

​如果要选择某一个具体的环境: application.properties中指定:spring.profiles.active=环境名

如果将application.properties注释掉,spring boot仍然会读取其他appilcation-环境名.properties中的配置。并且properties的优先级高于yml

1.2yml支持多文档块方式

通过—将文档分成多文档块:

注意格式首行同则相当于在同一目录

server:
  port: 8081
spring:
  profiles:
    active: prod
#文档块一
---
server:
  port: 8083
spring:
  profiles: dev
#文档块二
---
server:
  port: 8084
spring:
  profiles: prod  #指定属于哪个环境
#文档块三

1.3激活指定profile

配置文件中指定

使用spring.profiles.active激活指定profile

1.3.1 application.properties

1.3.2 application.yml

通过dev或prod指定当前运行的环境

​程序参数指定

程序参数中添加–spring.profiles.acprotive激活指定profile

虚拟机参数指定

在VM options中添加-Dspring.profiles.active=dev

1.4 动态切换环境总结

​ i:通过运行参数指定环境

(1)STS(Eclipse) :Run Configuration - Argument - program Argument

  • --spring.profiles.active=环境名

(2)命令行方式:

  • java -jar 项目名.jar --spring.profiles.active=环境名

ii:通过vm参数指定环境

  • STS(Eclipse) :Run Configuration - Argument - VM
  • -Dspring.profiles.active=环境名

2.关于配置文件路径的读取顺序

–file:./config/

–file:./

–classpath:/config/

–classpath:/

优先级由高到底,高优先级的配置会覆盖低优先级的配置

SpringBoot会从这四个位置全部加载主配置文件,互补配置

最终读取文件运行情况:

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;(SpringBoot2.0版本之后指定文件与默认配置不会形成互补配置,只是指定文件中的配置生效)

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar –spring.config.location=文件路径

总结

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

相关文章

  • Java ArrayAdapter用法案例详解

    Java ArrayAdapter用法案例详解

    这篇文章主要介绍了Java ArrayAdapter用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 基于java TCP网络通信的实例详解

    基于java TCP网络通信的实例详解

    本篇文章是对java中TCP网络通信的实例进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Springboot实现高吞吐量异步处理详解(适用于高并发场景)

    Springboot实现高吞吐量异步处理详解(适用于高并发场景)

    这篇文章主要介绍了Springboot实现高吞吐量异步处理详解(适用于高并发场景),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java Multimap实现类与操作的具体示例

    Java Multimap实现类与操作的具体示例

    Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,这篇文章主要介绍了Java Multimap实现类与操作的具体示例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-06-06
  • MyBatis框架处理字符串相等的判断条件

    MyBatis框架处理字符串相等的判断条件

    MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件,无论是简单的等值判断,还是复杂的条件逻辑,下面就来详细的介绍一下,感兴趣的可以了解一下
    2025-11-11
  • Java实现简单的分页功能

    Java实现简单的分页功能

    这篇文章主要为大家详细介绍了Java实现简单的分页功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • JsonProperty及JSONField注解的使用说明

    JsonProperty及JSONField注解的使用说明

    文章介绍了两个常用的Java库注解:Jackson的@JsonProperty和Fastjson的@JSONField,它们用于控制Java对象与JSON数据之间的序列化和反序列化,文章详细说明了这两个注解的常见属性及其使用场景,包括指定属性名、控制字段可见性、设置默认值和标记字段的必需性
    2024-12-12
  • 关于Java反射机制 你需要知道的事情

    关于Java反射机制 你需要知道的事情

    这篇文章主要介绍了Java反射机制的相关内容,涉及了class类的动态加载,获取成员变量、构造函数信息等信息,需要的朋友可以参考下。
    2017-09-09
  • Mybatis 如何在配置文件中给实体类起别名

    Mybatis 如何在配置文件中给实体类起别名

    这篇文章主要介绍了Mybatis 如何在配置文件中给实体类起别名的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java实现PDF与OFD相互转换的解决方案

    Java实现PDF与OFD相互转换的解决方案

    在当今数字化浪潮下,电子文档已成为信息流通和业务处理的核心载体,其中,PDF因其跨平台、固定版式等特性而广受欢迎,与此同时,OFD作为国家标准正得到大力推广和应用,所以本文将深入探讨如何使用Java实现PDF与OFD相互转换,需要的朋友可以参考下
    2025-08-08

最新评论