SpringBoot配置文件的拆分过程

 更新时间:2025年11月21日 09:04:52   作者:萌宅鹿同学  
本文主要介绍了如何在Spring Boot中进行配置文件拆分,包括生产环境和测试环境的配置分离,以及如何激活指定的profile,此外,还讨论了配置文件的加载位置和互补配置的方式

在实际开发过程中 生产环境测试环境 有可能是不一样的,因此将生产中的配置和测试中的配置拆分开,是非常必要的;在 springboot 中也提供了配置文件拆分的方式。

这里以生产中项名名称不一致为例,假设:

  • 生产中的项目名为:cmzf
  • 测试中的项目名为:springboot
  • 端口同时为:8080

application.yml

  • 主配置文件:application.yml
# 用来书写生产和测试相同的的配置
spring:
  profiles:
    active: dev
server:
  port: 8080 #生产和测试为同一个端口
  • 生产配置文件:application-pord.yml
server:
  servlet:
	context-path: /cmfz
  • 测试配置文件:application-dev.yml
server:
  servlet:
	context-path: /springboot

yml 多文档块方式

server:
  port: 8081
spring:
  profiles:
    active: prod

---
server:
  port: 8083
spring:
  profiles: dev

---
server:
  port: 8084
spring:
  profiles: prod  #指定属于哪个环境

application.properties

  • 主配置文件application.properties
# 延迟加载
spring.main.lazy-initialization=true
# 使用测试环境配置
spring.profiles.active=dev
  • 测试配置文件application-dev.properties
server.servlet.context-path=/springboot
server.port=8989
  • 生产配置文件application-prod.properties
server.servlet.context-path=/cmfz
server.port=8080

激活指定 profile(3种方法)

1、在配置文件中指定 spring.profiles.active=dev

2、命令行:运行 jar 包时后面写上:--spring.profiles.active=dev

java -jar hello_springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;

可以直接在测试的时候,配置传入命令行参数:

​3、虚拟机参数;

-Dspring.profiles.active=dev

配置文件的加载位置

springboot 启动会扫描以下几个位置的 配置文件:

  • –file:./config/
  • –file:./
  • –classpath:/config/
  • –classpath:/

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

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

我们还可以通过 spring.config.location 来改变默认的配置文件位置; 

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置; 

指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;

java -jar hello_springboot-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties

总结

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

相关文章

  • Springboot自定义注解&传参&简单应用方式

    Springboot自定义注解&传参&简单应用方式

    SpringBoot框架中,通过自定义注解结合AOP可以实现功能如日志记录与耗时统计,首先创建LogController和TimeConsuming注解,并为LogController定义参数,然后,在目标方法上应用这些注解,最后,使用AspectJ的AOP功能,通过切点表达式定位这些注解
    2024-10-10
  • SpringAop切面执行顺序实践

    SpringAop切面执行顺序实践

    本文介绍Spring AOP中自定义切面与内置切面的执行顺序控制方法,通过@Order注解设置切面优先级,确保业务逻辑正确执行,感兴趣的可以了解一下
    2026-04-04
  • springboot配置tomcat端口的方法

    springboot配置tomcat端口的方法

    在Spring Boot项目中,Tomcat服务器的端口通常是通过配置文件(application.properties或application.yml)来设置的,下面给大家分享springboot配置tomcat端口的方法,感兴趣的朋友一起看看吧
    2025-05-05
  • Java实现pdf转图片案例

    Java实现pdf转图片案例

    这篇文章主要介绍了Java实现pdf转图片案例,按照步骤放置代码,一步步完成该案例,将代码部署便可,需要的朋友可以参考下
    2021-06-06
  • java获取json中的全部键值对实例

    java获取json中的全部键值对实例

    下面小编就为大家分享一篇java获取json中的全部键值对实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Java数据结构之常见排序算法(下)

    Java数据结构之常见排序算法(下)

    这篇文章主要介绍了Java数据结构之常见排序算法(下),与之相对有(上),想了解的朋友可以去本网站扫搜,在这两篇文章里涵盖关于八大排序算法的所有内容,需要的朋友可以参考下
    2023-01-01
  • Java实题演练二叉搜索树与双向链表分析

    Java实题演练二叉搜索树与双向链表分析

    这篇文章主要介绍了Java二叉搜索树与双向链表,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-12-12
  • JavaSE图像验证码简单识别程序详解

    JavaSE图像验证码简单识别程序详解

    这篇文章主要为大家详细介绍了JavaSE图像验证码简单识别程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Javaweb-HttpServletResponse的sendRedirectch重定向方式

    Javaweb-HttpServletResponse的sendRedirectch重定向方式

    这篇文章主要介绍了Javaweb-HttpServletResponse的sendRedirectch重定向方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • JAVA使用GDAL解析S57海图文件全面详解

    JAVA使用GDAL解析S57海图文件全面详解

    这篇文章主要介绍了JAVA使用GDAL解析S57海图文件,S57海图文件作为一种标准化的海图数据格式,承载着丰富的海洋地理信息,本文将介绍如何高效、准确地读取和解析这些数据,需要的朋友可以参考下
    2026-01-01

最新评论