欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

SpringBoot多环境切换的灵活配置详细教程,

来源: javaer 分享于  点击 20388 次 点评:285

SpringBoot多环境切换的灵活配置详细教程,


目录
  • profile 的使用
  • 激活 profile 的方式
    • 命令行启动
    • idea 中配置
    • 配置文件中激活
  • 开发中最灵活的多环境配置
    • 创建四个配置
    • 主配置文件
    • 其他几个环境配置
    • 使用方式
  • 配置文件拆分
    • 总结

      在日常的开发中,一般都会分好几种环境,比如通常的

      • 开发环境:一般在开发的过程中,一个比较随意地环境,通常可以随意重启,删除数据 ;
      • 测试环境:面向测试同学的环境,需要相对稳定,完整,基本模拟线上的环境,但是可操作。
      • 生产环境:也就是线上环境,基本没有什么大的问题不会操作的环境,是重中之重。

      在三个环境都需要部署,怎么样保证多个环境的配置正确,开发方便,部署方便,这篇总结下

      profile 的使用

      profile 为在不同环境下使用不同的配置提供了支持,我们可以通过激活、指定参数等方式快速切换环境。多 Profile 文件方式 Spring Boot 的配置文件共有两种形式:.properties 文件和 .yml 文件,不管哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,

      文件命名格式为:application-{profile}.properties/yml

      其中,{profile} 一般为各个环境的名称或简称,

      例如 dev、test 和 prod 等等。当然也可以使用自定义的一些名字。

      个人比较习惯yml的配置,更方便阅读,结构明确。

      激活 profile 的方式

      命令行启动

      java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
      

      idea 中配置

      idea 中编辑启动参数,添加 vm 选项-Dspring.profiles.active=test注:这种方式和上面一样

      配置文件中激活

      创建 3 个配置文件,通过主配置文件激活环境(不灵活)

      application.yml
      application-dev.yml
      application-test.yml
      

      application.yml .主配置文件可以向下面这样写。

      spring:
        profiles:
          active: dev
      

      开发中最灵活的多环境配置

      创建四个配置

      application.yml
      application-dev.yml
      application-test.yml
      application-prod.yml
      

      主配置文件

      application.yml #主配置文件

      spring:
        profiles:
          active: ${ENV:dev}
      

      注意:这里加了一个环境变量 ENV,在启动的时候进行注入,如果不写,默认启动 dev 环境

      其他几个环境配置

      application-dev.yml #开发环境的配置

      server:
        port: 8091
      

      application-test.yml #测试环境的配置

      server:
        port: 8092
      

      application-prod.yml #生产环境的配置

      server:
        port: ${PORT:8093}
      

      注:这三个环境配置,只在其中的 prod 环境使用了环境变量application-xxx.yml。 在后续使用prod的时候可以根据环境设置环境变量赋值配置。

      相同的配置会覆盖 application.yml的配置

      使用方式

      1.在开发环境,可以写死测试环境,开发环境的配置,避免在开发传环境变量,激活什么的

      2.在生产环境,可以通过环境变量 ENV=prod 激活生产环境的变量配置, idea 传递环境变量如下图

      3.docker 环境启动时候通过 env 设置环境变量docker run -itd --env ENV=prod test.jar

      4.docker-compose

      配置文件拆分

      配置文件支持将将配置进行拆分到不同的配置文件 如果多个环境拥有相同的配置,有两种解决办法

      • 提取到application.yml

      • 分离一个新的application-default_handler.yml

      第一种情况可以针对 springboot 的一些通用配置

      第二种适合一些业务的配置相关,比如项目中有一些自定义的配置,在三个环境都适合,就可以分离开

      spring:
        profiles:
          active: ${ENV:dev}
          include: default_handler
      

      只要 application-default_handler.yml 符合 yaml 的格式,项目中一样可以加载到

      总结

      • 灵活使用环境变量启用不同的 profile
      • 灵活使用 spring.profiles.include 激活多个配置
      • 最后 application.properties 和 application.yml 是一样的使用方法
      • 如果你使用 nacos 也可以实现同样的效果,但是需要引入中间件,不推荐 

      到此这篇关于SpringBoot多环境切换的灵活配置的文章就介绍到这了,更多相关SpringBoot多环境切换配置内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

      您可能感兴趣的文章:
      • springboot国际化多语言配置方式
      • SpringBoot集成I18n国际化文件在jar包外生效问题
      • SpringBoot如何集成i18n(多语言)
      • IDEA中springboot提示java:找不到符号符号:变量log问题
      • SpringBoot如何自定义线程池配置类
      • springboot注解及GET、POST接口写法
      • Spring和Spring Boot的区别及说明
      相关栏目:

      用户点评