SpringBoot多环境配置,让你部署无忧

SpringBoot多环境配置,让你部署无忧

1.前言☕

大家好,我是Leo哥🫣🫣🫣,今天给大家带来关于精品SpringBoot专栏,暂且就给他起名为循序渐进学SpringBoot,这里我参考了我上一个专栏:循序渐进学SpringSecurity6。有需要的朋友可以抓紧学习来哈,带你从SpringSecurity从零到实战项目。好了,我们进入正题,为什么会有SpringBoot这个专栏呢,是这样的,今年Leo哥也是正在重塑知识体系,从基础到框架,而SpringBoot又是我们框架中的核心,我觉得很有必要通过以博客的形式将我的知识系列进行输出,同时也锻炼一下自己的写作能力,如果能帮到大家那就更好啦!!!本地系列教程会从SpringBoot基础讲起,会以知识点+实例+项目的学习模式由浅入深对Spring Boot框架进行学习&使用。好了,话不多说让我们开始吧😎😎😎。

2.Profile

2.1 概念

profile 本质上代表一种用于组织配置信息的维度,在不同场景下可以代表不同的含义。例如,如果 Profile 代表的是一种状态,我们可以使用 open、halfopen、close 等值来分别代表全开、半开和关闭等。再比如系统需要设置一系列的模板,每个模板中保存着一系列配置项,那么也可以针对这些模板分别创建 Profile。这里的状态或模版的定义完全由开发人员自主设计,我们可以根据需要自定义各种 Profile,这就是 Profile 的基本含义。

为了达到集中化管理的目的,SpringBoot 对配置文件的命名也做了一定的约定,分别使用 label 和 profile 概念来指定配置信息的版本以及运行环境,其中 label 表示配置版本控制信息,而 profile 则用来指定该配置文件所对应的环境。

在Spring Boot中,可以通过在配置文件中使用不同的profile来实现多环境配置。例如,在application.properties文件中可以定义多个不同的配置,而在不同的环境中可以通过激活不同的profile来选择不同的配置。例如,可以定义一个dev环境的profile和一个prod环境的profile,分别对应开发环境和生产环境的配置。

2.2 profile的基本使用

SpringBoot 的配置文件共有两种形式:.properties 文件和 .yml 文件,不管哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文件命名格式为:

yml 复制代码
application-{profile}.properties/yaml

如下所示的配置文件命名都是常见和合法的:

yml 复制代码
/{application}.yml

/{application}-{profile}.yml

/{label}/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

其中,{profile} 一般为各个环境的名称或简称,例如 dev(开发环境)test(测试环境)pro(生产环境) 等等。

2.3 文件的配置

这里为了区分我们的每一个知识点,我们重新创建一个模块,方便我们区分和复习。

创建出四个配置文件,分别是:

  • application.yml: 主配置文件
  • application-dev.yml: 开发环境配置文件
  • application-test.yml: 测试环境配置文件
  • application-prod.yml: 生产环境配置文件

在 application.yaml 文件中,指定默认服务器端口号为 8080。

未指定环境时,启动项目,你们可以看到控制台打印如下:

可以看到默认启动的是8080端口。

No active profile set, falling back to default profiles: default

默认激活的配置文件是application.yml。

2.4 激活其他配置

那么如何进行激活其他分支的配置呢,我们这里以dev分支进行演示。

首先在application-dev.yml配置文件中编写一个基本配置。

我们这里就简单配置一个端口号,一会看我们的项目端口号是否进行了切换。

然后回到application.yml主配置文件中进行切换分支。

然后启动项目测试。

The following profiles are active: dev

可以看到此时控制台日志就发现了改变,此时激活的分支为 dev。此时监听的端口号为8090,就是我们dev分支所设置的端口。

上述介绍的主要是配置方式动态切换,而切换方式就是通过配置文件的spring.profiles.active属性实现,那还有没有别的启动方式呢?当然有呢,还有更多更简单的方式,咱们接着往下聊。

3.激活方式

这里介绍另外一种激活方式,不需要去主配置文件中进行切换。

实际开发中,我们可能需要使用开发环境,但是在本地测试又不想去动配置文件中的代码,这该如何搞呢。

其实IDEA已经想到这一点,给我们带来了极大的便利。

在IDEA开发工具中打开RunDebug Configurations界面

在active profiles的选项中填写你要你激活的分支。

如果在IDEA新版UI没有这个选项,可以通过点击右上角 modyfy options 开启。

我们这里把原来主配置文件中的激活给注释了。

然后启动项目进行测试。

通过控制台日志可以看出来,我们的参数配置生效了。大功告成!!!

以上便是本文的全部内容,本人才疏学浅,文章有什么错误的地方,欢迎大佬们批评指正!我是Leo,一个在互联网行业的小白,立志成为更好的自己。

如果你想了解更多关于Leo,可以关注公众号-程序员Leo,后面文章会首先同步至公众号。

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
Hello-Brand10 分钟前
Java核心知识体系10-线程管理
java·高并发·多线程·并发·多线程模型·线程管理
乐悠小码16 分钟前
数据结构------队列(Java语言描述)
java·开发语言·数据结构·链表·队列
史努比.18 分钟前
Pod控制器
java·开发语言
2的n次方_20 分钟前
二维费用背包问题
java·算法·动态规划
皮皮林55121 分钟前
警惕!List.of() vs Arrays.asList():这些隐藏差异可能让你的代码崩溃!
java
莳光.21 分钟前
122、java的LambdaQueryWapper的条件拼接实现数据sql中and (column1 =1 or column1 is null)
java·mybatis
程序猿麦小七26 分钟前
基于springboot的景区网页设计与实现
java·spring boot·后端·旅游·景区
weisian15132 分钟前
认证鉴权框架SpringSecurity-2--重点组件和过滤器链篇
java·安全
蓝田~34 分钟前
SpringBoot-自定义注解,拦截器
java·spring boot·后端
.生产的驴36 分钟前
SpringCloud Gateway网关路由配置 接口统一 登录验证 权限校验 路由属性
java·spring boot·后端·spring·spring cloud·gateway·rabbitmq