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

总结

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

相关文章

  • 深入Sqlite多线程入库的问题

    深入Sqlite多线程入库的问题

    本篇文章是对Sqlite多线程入库的问题进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 2020JDK1.8安装教程详解(一次就可安装成功)

    2020JDK1.8安装教程详解(一次就可安装成功)

    这篇文章主要介绍了2020JDK1.8安装教程详解(一次就可安装成功),本文通过图文并茂的形式分步骤给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-08-08
  • springMVC中@RequestParam和@RequestPart的区别

    springMVC中@RequestParam和@RequestPart的区别

    本文主要介绍了springMVC中@RequestParam和@RequestPart的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Java中HashMap 中的一个坑

    Java中HashMap 中的一个坑

    这篇文章主要介绍了Java中HashMap 中的一个坑,文章围绕主题展开详细的内容介绍,具有一定的参考价价值,需要的小伙伴可以参考一下
    2022-05-05
  • Java存储过程调用CallableStatement的方法

    Java存储过程调用CallableStatement的方法

    这篇文章主要介绍了Java存储过程调用CallableStatement的方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-11-11
  • Spring事务传播行为问题解决

    Spring事务传播行为问题解决

    这篇文章主要介绍了Spring事务传播行为问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • SpringBoot基本web开发demo过程解析

    SpringBoot基本web开发demo过程解析

    这篇文章主要介绍了SpringBoot基本web开发demo过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 基于MyBatis XML配置方法(全面了解)

    基于MyBatis XML配置方法(全面了解)

    下面小编就为大家带来一篇基于MyBatis XML配置方法(全面了解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 如何在Spring Boot项目中集成MQTT协议

    如何在Spring Boot项目中集成MQTT协议

    本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加Eclipse Paho依赖、配置连接参数、实现消息发布订阅、测试接口及注意事项,如唯一客户端ID、安全措施等,帮助开发者快速实现物联网通信,感兴趣的朋友一起看看吧
    2025-06-06
  • java命令执行jar包的多种方法(四种方法)

    java命令执行jar包的多种方法(四种方法)

    本文通过四种方法给大家介绍java命令执行jar包的方式,每种方法通过实例代码给大家详解,需要的朋友参考下吧
    2019-11-11

最新评论