springboot使用yml文件配置多环境方式(dev、test、prod)

 更新时间:2023年09月18日 16:17:31   作者:星 ~ 程 @  
这篇文章主要介绍了springboot使用yml文件配置多环境方式(dev、test、prod),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用yml文件配置多环境(dev、test、prod)

为了实现多环境配置,我们可以在本地开发的时候在Resource文件夹下新建不同环境的配置文件,

如下图所示:

一、配置解析

默认的一个,就是啥都不加的,默认配置文件,application.yml文件,可根据自己需求使用

  • 开发环境(dev):开发环境是专门用于开发的服务器,可随时配置,只要配的自己开发舒服就行,
  • 测试环境(test):一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。
  • 生产环境(prod):是正式提供对外服务的,一般会关掉错误报告,打开错误日志。这个配置就需要谨慎点哦

三个环境也可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环境。

使用这些配置还是有好处的:

1.不同环境配置可以配置不同的参数

2.便于部署,提高效率,减少出错

这时候我们只需要在主配置文件application.yml文件使用spring.profiles.active = dev/test/prod来进行不同环境的切换

spring:
  profiles:
    active: dev #加载dev配置文件

二、主配置文件与不同环境的配置文件

Spring Profile有一个特性即可以在application.yml配置通用的内容,在application-dev.yml文件中配置不同文件的差异化配置,这样可以精简我们的配置文件。

配置如下:

# 主配置文件主要用来存放公共设置,不受环境配置影响
server:
 port: 8082 # 指定端口号
  context-path: /server # 指定访问资源的根路径
spring:
 profiles:
   active: dev

三、dev配置文件

# 主要用来存放不同环境差异化配置,包括ftp地址、数据库连接等
spring:
 datasource:
   username: xxx
   password: xxx
   url: xxx
   driver-class-name: oracle.jdbc.driver.OracleDriver

上述解决方案虽然可以解决我们的环境问题,

但是不够优雅,还有一些值得优化的地方,

比如打包出的配置文件有四个、每次需要手动修改主配置文件的环境信息等。

总结

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

相关文章

  • Java分析讲解序列化与字典功能的序列化

    Java分析讲解序列化与字典功能的序列化

    在项目开发地过程中经常会用到字典存储某些可配置的值,但相应的也会给开发带来复杂度,比如数据库存储的值为字典值:0,1,2,3这种类型的值,但是前端页面却需要展示为 启动、禁用、删除 等中文状态,下面我们来看两种解决方案
    2022-06-06
  • Java慢查询排查与性能调优完整实战指南

    Java慢查询排查与性能调优完整实战指南

    Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,这篇文章主要介绍了Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-08-08
  • Springboot中@RequestParam和@PathVariable的用法与区别详解

    Springboot中@RequestParam和@PathVariable的用法与区别详解

    这篇文章主要介绍了Springboot中@RequestParam和@PathVariable的用法与区别详解,RESTful API设计的最佳实践是使用路径参数来标识一个或多个特定资源,而使用查询参数来对这些资源进行排序/过滤,需要的朋友可以参考下
    2024-01-01
  • Java JNDI案例详解

    Java JNDI案例详解

    这篇文章主要介绍了Java JNDI案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • springboot 2.3之后消失的hibernate-validator解决方法

    springboot 2.3之后消失的hibernate-validator解决方法

    这篇文章主要介绍了springboot 2.3之后消失的hibernate-validator解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 深入理解Thread.sleep(0)的作用

    深入理解Thread.sleep(0)的作用

    本文主要介绍了深入理解Thread.sleep(0)的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • MyBatis中特殊符号的转义

    MyBatis中特殊符号的转义

    编写SQL中会用到<,>,,>= 等,但是在mybatis中不可以这么写,与xml文件的元素冲突,所以需要转义,本文主要介绍了MyBatis中特殊符号的转义,主要介绍了两种转义方式,感兴趣的可以了解一下
    2024-01-01
  • springboot集成nacos报错:get data from Nacos error,dataId:null.yaml的原因及解决方法

    springboot集成nacos报错:get data from Nacos 

    这篇文章给大家介绍了springboot集成nacos报错:get data from Nacos error,dataId:null.yaml的原因及解决方法,如果又遇到相同问题的朋友可以参考阅读本文
    2023-10-10
  • Java如何生成压缩文件工具类

    Java如何生成压缩文件工具类

    这篇文章主要介绍了Java如何生成压缩文件工具类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • JAVA Frame 窗体背景图片,首位相接滚动代码实例

    JAVA Frame 窗体背景图片,首位相接滚动代码实例

    这篇文章主要介绍了JAVA Frame 窗体背景图片,首位相接滚动代码示例,需要的朋友可以参考下复制代码
    2017-04-04

最新评论