Profile多环境配置以及结合Maven如何使用

news2024/12/22 23:41:45

文章目录

  • 一、前言
  • 二、如何使用profile多环境配置
    • 2.1、编写各环境的配置文件
    • 2.2、如何让配置文件生效
  • 三、结合Maven使用

一、前言

我们在开发项目的过程中,会遇到需要使用多套环境配置的情况,因为不同环境可能存在不同的配置,比如数据库连接等等,这时候就可以用 profile 来解决

二、如何使用profile多环境配置

2.1、编写各环境的配置文件

我们知道配置文件支持很多格式,这里以 yml 为例,一般来说我们的配置文件会存放在 src/main/resources 目录下,命名为 application.yml,而 profile 需要我们通过不同的命名来区分不同的环境配置,格式为:application-{profile}.yml,举个例子开发环境可以叫:application-dev.yml,测试环境可以叫:application-test.yml,生产环境可以叫:application-pro.yml,我们可以保留住原本的 application.yml 文件,用来放置一些所有环境相同的配置,把不同的配置放置在各自的配置文件里,列个表格:

文件名说明
application.yml存放各环境相同的配置,如端口号等
application-dev.yml存放开发环境的配置,如mysql、redis、mongo等
application-test.yml存放测试环境的配置,如mysql、redis、mongo等
application-pro.yml存放生产环境的配置,如mysql、redis、mongo等

2.2、如何让配置文件生效

只需要在启动项目的时候增加参数 --spring.profiles.active=dev 就可以指定环境

在 IDEA 中,可以在 Environment variables 里填上 spring.profiles.active=dev 就可以了

image-20230801112533065

如果是 SpringBoot 在 Active profiles 里填上 dev 也可以达到一样的效果

image-20230801112606705

当然也可以在 application.yml 文件中设置 spring.profiles.active 参数

image-20230801112858671

三、结合Maven使用

而在 IDEA 中还有个更快速的方式,因为 maven 有一个关于 profile 的配置,而 IDEA 里有专门的 maven 窗口可以用来切换,怎么操作呢?首先在 pom.xml 文件里添加如下代码

<profiles>
	<profile>
		<id>dev</id>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<properties>
			<env>dev</env>
		</properties>
	</profile>
	<profile>
		<id>test</id>
		<properties>
			<env>test</env>
		</properties>
	</profile>
	<profile>
		<id>prod</id>
		<properties>
			<env>prod</env>
		</properties>
	</profile>
</profiles>

这里设置了默认是 dev,我这边自定义了一个 env 标签,你也可以按自己的需要去定义,这个标签有什么呢,刚才上面我们有说过可以在 application.yml 文件中设置 spring.profiles.active 参数,这时候我们可以把这个参数改成 @env@,具体如下:

image-20230801135632984

之后就可以在 IDEA 里的 maven 窗口里勾选切换环境了,切换之后重新 import 就可以了

image-20230801140911430

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

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

相关文章

eNSP 路由器启动时一直显示 # 号的解决办法

文章目录 1 问题截图2 解决办法2.1 办法一&#xff1a;排除防火墙原因导致 3 验证是否成功 1 问题截图 路由器命令行一直显示 # 号&#xff0c;如下图 2 解决办法 2.1 办法一&#xff1a;排除防火墙原因导致 排查是否因为系统防火墙原因导致。放行与 eNSP 和 virtualbox 相…

Shiro框架基本使用

一、创建maven项目&#xff0c;引入依赖 <dependencies><dependency><groupId>org.apache.directory.studio</groupId><artifactId>org.apache.commons.codec</artifactId><version>1.8</version></dependency><!-- …

A-LOAM安装与配置

GitHub https://github.com/HKUST-Aerial-Robotics/A-LOAM 依赖项 需要安装Ceres Slover和PCL PLC之前已经安装过&#xff0c;因此只需要安装Ceres Solver 编译安装Ceres Slover报错 官方的安装指南 http://ceres-solver.org/installation.html 一开始是git下来的最新版本的…

r一个高性能、无侵入的 Java 性能监控和统计工具

背景 随着所在公司的发展&#xff0c;应用服务的规模不断扩大&#xff0c;原有的垂直应用架构已无法满足产品的发展&#xff0c;几十个工程师在一个项目里并行开发不同的功能&#xff0c;开发效率不断降低。 于是公司开始全面推进服务化进程&#xff0c;把团队内的大部分工程…

官网下载历史版本Android studio

有时我们个更新到了最新版本的AndroidStudio&#xff0c;但发现最新版的有一些bug影响使用&#xff0c;这时我们需要将新版卸载安装到旧版本&#xff0c;本文便是记录如何在官网下载旧版本的android studio。 下载地址 1、查看Release notes 2、查看过往版本 3、点击下载旧版…

Jenkins持续集成实现过程(简易版)

我就用一台服务器模拟&#xff0c;gitlab用公司现成的&#xff0c;jenkins安装发版都是在同一台服务器上 安装Jenkins&#xff08;Docker&#xff09; 宿主机上创建数据映射目录 mkdir /data/jenkins给映射目录权限&#xff0c;不然jenkins用不了 chmod -R 777 /data/jenkin…

【es6】Promise实现

友情链接 关于promise的介绍&#xff0c;请看此篇水文 本篇文章只是介绍实现promise以及promise常用方法。 正文 Promise使用 let promise new Promise((resolve,reject)>{resolve(success); //这里如果是reject(fail) }); promise.then((res)>{console.log(res); …

企业AD域管理:ADManager Plus助您轻松掌控全局

在现代企业中&#xff0c;Active Directory&#xff08;AD&#xff09;域是一个至关重要的组成部分。它作为一种身份验证和授权机制&#xff0c;管理着企业网络中的用户、计算机、组和其他资源。然而&#xff0c;随着企业规模和复杂性的不断增长&#xff0c;AD域的管理变得越来…

深入挖掘地核和地幔之间的相互作用

一本新书介绍了我们在理解地核-地幔相互作用和共同进化方面的重大进展&#xff0c;并展示了提高我们对地球深层过程的洞察力的技术发展。 与地核-地幔共同演化相关的地球深层结构和动力学的图示。图片来源&#xff1a;白石千寻 Editors Vox是 AGU 出版部的博客。 地球深层内部很…

螺杆支撑座使用深沟球轴承和角接触球轴承的区别?

螺杆支撑座是连接丝杆和电机的轴承固定座&#xff0c;与滚珠螺杆搭配使用&#xff0c;能够获得高刚性、高精度的稳定的回转性能&#xff0c;因此被广泛应用在各行各业中。 使用螺杆支撑座之所以能够获得稳定的回转性能&#xff0c;主要是因为最佳轴承的使用&#xff0c;通俗点说…

IDEA中怎么将代码提交代码到远程仓库

假设代码已经写好,现在准备提交到远程仓库 git会自动帮我们在远程托管平台中创建一个仓库这里我选用的是gitee 如果还没有注册gitee 请先去注册,第一次使用需要登录gitee账号 登录我们自己的gitee账号,会发现git自动创建了一个仓库 如果我们又修改了 代码,想重新提交到远程仓库…

DreamBooth为何有能力让第一个应用创建者年赚2500万美金?

DreamBooth 是一种个性化的文本到图像生成模型&#xff0c;它可以通过向扩散模型&#xff08;比如Stable Diffusion&#xff09;中注入少量主体对象&#xff0c;从而达到对基础模型的微调。使用微调后的模型可以生成在不同的场景、姿势和视角中的该主体上下文图像。 Dreamboot…

单通道 6GSPS 16位采样DAC子卡模块--【资料下载】

FMC147是一款单通道6.4GSPS&#xff08;或者配置成2通道3.2GSPS&#xff09;采样率的12位AD采集、单通道6GSPS&#xff08;或配置成2通道3GSPS&#xff09;采样率16位DA输出子卡模块&#xff0c;该板卡为FMC标准&#xff0c;符合VITA57.4规范&#xff0c;该模块可以作为一个理想…

如何通过sqlplus连接oracle数据库

本文介绍如果通过sqlplus连接oracle数据库。如果用SQL Developer连接数据库服务器端&#xff0c;需要本地安装oracle客户端&#xff0c;而oracle客户端安装包比较大&#xff0c;安装配置也比较繁琐。这里推荐安装使用oracle的Instant Client。Instant Client是Oracle发布的轻量…

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰&#xff0c;不用来搞点事情&#xff0c;总觉得对不住它。业余打发时间就玩起来吧&#xff0c;总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄&#xff0c;让开发板支持以下它&#xff0c;后续就可以接着在上面玩童年…

JAVA 反编译工具

Releases deathmarine/Luyten GitHub 安装exe 打开拖入文件即可

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)

深入探索和分析MySQL数据库的数据备份和恢复实战开发指南&#xff08;8.0版本升级篇&#xff09; 项目目标官方升级地址 向前兼容性问题任务拆分调整项目前提工作应用服务改造驱动器改造&#xff08;p0&#xff09;改造范围解决问题 客户端连接配置&#xff08;p0&#xff09;改…

卖菜大妈都能听懂:告诉你什么是信息化,数字化,智能化

最近两年&#xff0c;数字化成为了新的流行趋势&#xff0c;网上充斥着大量关于数字化的文章。然而&#xff0c;仔细阅读这些文章会发现&#xff0c;其中大多数只是将信息化一词替换成了数字化&#xff0c;而内容并没有实质性的改变。而且&#xff0c;一些文章还在混淆术语&…

NSS刷web3

[HDCTF 2023]SearchMaster [天翼杯 2021]esay_eval 这题会匹配A或B类 如 "A":1: 绕不过去 可以考虑快速析构 <?php class A{public $code "";function __call($method,$args){eval($this->code);}function __wakeup(){$this->code "&q…

Emacs之将.el编译成bin(一百二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…