Spring Boot工具篇--使用yml多环境配置和创建多环境profile打包

news2024/9/23 17:15:46

1、yml多环境配置

        在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识;

  application-dev 开发环境 application-test 测试环境 application-prod 生产环境

如果我们要激活某一个环境,只需要在 application.yml里:

spring:
  profiles:
    active: dev

此外,假设我们配置一些基本设置如:

application-dev.yml

server:
  port: 9001

application-test.yml

server:
  port: 9002

application-prod.yml

server:
  port: 9003

此时,当我们去修改application.yml

  • 改为 dev

  • 改为 test

  • 改为 prod

2、创建多环境profile打包

        通过上述步骤,可以轻松切换当前环境,不过也稍微有些麻烦,那是否有一些配置文件可以代替手动更改profile并且能创建多环境profile打包呢

答案是肯定的

pom.xml

pom文件中添加profile节点,并在build下的resources节点添加打包过滤的配置文件规则

   <profiles>
        <profile>
            <!--	开发环境		-->
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <!--	默认激活的环境		-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!--	测试环境		-->
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <!--	生产环境		-->
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>
    
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application-${profileActive}.yml</include>
                    <include>application.yml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

application.yml中配置一个动态属性进行占位,默认的分隔符是@属性名@,这个属性会通过maven打包时传入参数进行替换;

spring:
  profiles:
    active: @profileActive@

右侧的可视化选择环境,让工作更加变得高效;

maven 多环境打包

打包过滤配置文件规则也是用一个占位符进行占位,打包时也会通过maven传入参数进行替换。

  • 1、通过 -D命令传入属性值profileActive,如:
clean install -Dmaven.test.skip=true -DprofileActive=dev
  • 2、通过-P命令指定profile环境,如:
clean package -P prod

右侧可视化选择更加方便:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【List篇】ArrayList 详解(含图示说明)

Java中的ArrayList是一个动态数组&#xff0c;可以自动扩展容量以适应数据的添加和删除。它可以用来存储各种类型的数据&#xff0c;例如String&#xff0c;Integer&#xff0c;Boolean等。ArrayList实现了List接口&#xff0c;可以进行常见的List操作&#xff0c;例如添加、插…

ping与Traceroute是如何工作的

ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol&#xff0c;就是互联网控制报文协议。 ICMP 报文是封装在 IP 包里面的。因为传输指令的时候&#xff0c;肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型&#xff0c;不同的类型…

最近读书了吗?林曦老师与你分享来自暄桐课堂的读书方法

近来&#xff0c;大家有在开心读书吗&#xff1f;对于读书&#xff0c;有一个很生动的说法&#xff1a;“无事常读书&#xff0c;一日是四日。若活七十年&#xff0c;便二百八十。”读书帮助我们超越个体生命经验的限制&#xff0c;此时此地的我们&#xff0c;也可借由书本&…

JS-DOM BOM(未完)

一.Web APIs 1.Web APIs和JS基础关联性 1.1 JS组成 1.2 JS基础阶段以及Web APIs阶段 2.API和Web API 2.1 API 2.2 Web API 2.3 API和Web API总结 二.DOM 1.DOM简介 1.1 什么是DOM 1.2 DOM树 2.获取元素 2.1 如何获取页面元素 2.2 根据ID获取 使用getElementById()方法获…

爬虫系统的核心:如何创建高质量的HTML文件?

在网页抓取或爬虫系统中&#xff0c;HTML文件的创建是一项重要的任务。HTML文件是网页的基础&#xff0c;包含了网页的所有内容和结构。在爬虫系统中&#xff0c;我们需要生成一个HTML文件&#xff0c;以便于保存和处理网页的内容。 在这种情况下&#xff0c;可以使用Java函数…

deepfm内容理解

对于CTR问题&#xff0c;被证明的最有效的提升任务表现的策略是特征组合(Feature Interaction)&#xff1b; 两个问题&#xff1a; 如何更好地学习特征组合&#xff0c;进而更加精确地描述数据的特点&#xff1b; 如何更高效的学习特征组合。 DNN局限 &#xff1a;当我们使…

ESXI主机扩容(VCSA)

原因分析SCSI扩容 VMware为ESXI虚拟机硬盘扩容(需要先关闭ESXI) ESXI扩容前ESXI扩容 https://blog.csdn.net/tongxin_tongmeng/article/details/132652423 ESXI扩容后

2023年高教社杯数学建模国赛 赛题浅析

2023年国赛如期而至&#xff0c;为了方便大家尽快确定选题&#xff0c;这里将对赛题进行浅析&#xff0c;以分析赛题的主要难点、出题思路以及选择之后可能遇到的难点进行说明&#xff0c;方便大家尽快确定选题。 难度排序 B>A>C 选题人数 C>A>B (预估结果&…

软件工程课件

软件工程 考点概述软件工程概述能力成度模型能力成熟度模型集成软件过程模型逆向工程![ ](https://img-blog.csdnimg.cn/425cea8190fb4c5ab2bf7be5e2ad990e.png) 考点概述 重点章节 软件工程概述 之前老版教程的&#xff0c;之前考过 能力成度模型 记忆 能力等级 和 特点 能力…

【Java】基础练习 --- Stream练习

1.拼接 给定一个字符串数组,使用 Stream 把所有字符串拼接成一个字符串。 String[] arr {"a", "b", "c"}; 输出: abc&#xff08;1&#xff09;源码&#xff1a; package swp.kaifamiao.codes.Java.d0907;import java.util.stream.Stream;/*…

2023高教社杯全国大学生数学建模竞赛E题代码解析

2023高教社杯全国大学生数学建模竞赛E题 黄河水沙监测数据分析 代码解析 因为一些不可抗力&#xff0c;下面仅展示部分python代码&#xff08;第一问的部分&#xff09;&#xff0c;其余代码看文末 首先导入包&#xff1a; import numpy as np import pandas as pd import m…

【Python】matplotlib分格显示

参考&#xff1a;matplotlib图形整合之多个子图一起绘制_matplotlib多子图_王小王-123的博客-CSDN博客 方式一&#xff1a; import matplotlib.pyplot as plt import matplotlib.gridspec as gridspecplt.figure() # 方式一: gridspec # rowspan:行的跨度&#xff0c;colspan…

【代码随想录】Day 49 动态规划10 (买卖股票Ⅰ、Ⅱ)

买卖股票的最佳时机 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/ dp[i]表示在第i天时&#xff0c;卖/不卖股票能获得的最大利润&#xff1a; 1、卖股票&#xff1a;dp[i] prices[i] -minPrice&#xff08;i天以前的最低价格&#xff09; 2、不卖股票&am…

Python web自动化测试 —— 文件上传

文件上传三种方式&#xff1a; &#xff08;一&#xff09;查看元素标签&#xff0c;如果是input&#xff0c;则可以参照文本框输入的形式进行文件上传 方法&#xff1a;和用户输入是一样的&#xff0c;使用send_keys 1 2 3 4 5 步骤&#xff1a;1、找到定位元素&#xff0c…

ICCV2021 Exploring Cross-Image Pixel Contrast for Semantic Segmentation (Oral)

Exploring Cross-Image Pixel Contrast for Semantic Segmentation 探索语义分割的跨图像像素对比度 Paper&#xff1a;https://openaccess.thecvf.com/content/ICCV2021/html/Wang_Exploring_Cross-Image_Pixel_Contrast_for_Semantic_Segmentation_ICCV_2021_paper.html Co…

k8s 入门到实战--部署应用到 k8s

k8s 入门到实战 01.png 本文提供视频版&#xff1a; 背景 最近这这段时间更新了一些 k8s 相关的博客和视频&#xff0c;也收到了一些反馈&#xff1b;大概分为这几类&#xff1a; 公司已经经历过服务化改造了&#xff0c;但还未接触过云原生。公司部分应用进行了云原生改造&…

Spring MVC拦截器

拦截器&#xff08;Interceptor&#xff09;是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截&#xff0c;并在请求进入控制器&#xff08;Controller&#xff09;之前、控制器处理完请求后、甚至是渲染视图后&#xff0c;执行一些指定的操作。 在 Spring MV…

springboot设置热部署

一、常见的三种方式&#xff1a; Springboot中常见的热部署方式有3种: 1.使用springloaded配置pom.xml文件&#xff0c;使用mvn spring-boot:run启动 2.使用springloaded本地加载启动&#xff0c;配置jvm参数 3.使用devtools工具包&#xff0c;操作简单&#xff0c;但是每次…

python开发基础篇1——后端操作K8s API方式

文章目录 一、基本了解1.1 操作k8s API1.2 基本使用 二、数据表格展示K8s常见资源2.1 Namespace2.2 Node2.3 PV2.4 Deployment2.5 DaemonSet2.6 StatefulSet2.7 Pod2.8 Service2.9 Ingress2.10 PVC2.11 ConfigMap2.12 Secret2.13 优化 一、基本了解 操作K8s资源api方式&#xf…

第11篇:ESP32vscode_platformio_idf框架helloworld点亮LED

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 ​​​​​​第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验 第6篇:ESP32连接无源喇叭播…