spring.profiles.active=@profiles.active@用法
1.引言
当在多配置文件中,需要切换配置文件时,通常的做法都是修改激活的文件名称,而spring.profiles.active=@profiles.active@ 是配合 maven profile进行选择不同配置文件进行启动,可以避免修改文件,而在maven打包是指定使用哪个配置文件。
2.实战演练
2.1环境准备
首先使用IDEA创建一个SpringBoot的项目
2.2配置pom
假设目前有三个环境dev、test和prod,那么需要在pom.xml进行配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 是否默认激活 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
上述默认使用dev配置。配置后需要点击刷新按钮来刷新maven,然后会看到如下的几种选择:

2.3创建配置文件(properties类型)
首先创建application.properties文件,其内容为:
spring.profiles.active=@profiles.active@
创建application-dev.properties:
server.port=8888
创建application-test.properties:
server.port=9999
创建application-prod.properties:
server.port=8080
启动项目,查看控制台启动日志,启动端口是8888,然后关闭。
在Propfiles中勾选test,取消勾选dev,再启动项目,此时启动端口是9999,其他环境同理,打包也是类似的方式。
注意:若切换时还是使用上一次环境或报错,那么需要刷新一下maven再重启项目。
若是maven命令打包,其方式如下:
mvn clean package -P prod
使用-P指定使用的配置文件即可。无论是自动打包还是使用maven命令打包,最终的环境名称会配置给application.properties中,即:
spring.profiles.active=prod //这里假设是prod环境打包的
也就是说,免去了频繁修改配置文件的操作。
2.4创建配置文件(yml类型)
当然还有另一种yml方式配置,目前在使用时发现有问题,待更新!
spring.profiles.active=@profiles.active@用法的更多相关文章
- How to set spring boot active profiles with maven profiles
In the previous post you could read about separate Spring Boot builds for a local development machin ...
- spring.profiles.active=@profiles.active@的含义
spring.profiles.active=@profiles.active@ ,其实是配合 maven profile进行选择不同配置文件进行启动. 当执行 mvn clean package - ...
- SpringBoot(十九)_spring.profiles.active=@profiles.active@ 的使用
现在在的公司用spring.profiles.active=@profiles.active@ 当我看到这个的时候,一脸蒙蔽,这个@ 是啥意思. 这里其实是配合 maven profile进行选择不同 ...
- java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required
错误信息: java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA trans ...
- Spring AOP 中@Pointcut的用法
Spring Aop中@pointCut的用法,格式:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? nam ...
- spring 中配置sessionFactory及用法
spring 中配置sessionFactory及用法 方法一: 1.在Spring的applicationContext.xml中配置bean <!-- 启用注解注入 --> ...
- Spring中JdbcTemplate的基础用法
Spring中JdbcTemplate的基础用法 1.在DAO中使用JdbcTemplate 一般都是在DAO类中使用JdbcTimplate,在XML配置文件中配置好后,可以在DAO中注入即可. 在 ...
- 全面解析Spring中@ModelAttribute注解的用法
本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:全面解析Spring中@ModelAttribute注解的用法: @ModelAttribute注解用于将方法的参数或方法的返回值绑定到 ...
- spring boot配置项profiles active
结论:通用项配置在applicaton.yml,区别环境配置在application-{profile}.yml中 一直不知道这个参数要不要配,配了有什么用,今天搭一个工程来检验 此项作用:用来区分不 ...
- spring boot maven profiles,打包不同的配置文件
1. 在pom.xml添加 <profiles> <profile> <id>dev</id> <properties> <envir ...
随机推荐
- DVD+R和DVD-R有什么区别?如果选购的话有什么需要注意的?--九五小庞
DVD-R和DVD + R的区别和比较 表面上看,DVD + R光盘看起来与DVD-R光盘没有区别.它们的直径均为120mm,厚度为1.2mm,包括两个0.6mm的聚碳酸酯基材.但是,DVD + R在 ...
- win11正式版账号锁定无法登录的问题
有一些雨林木风官网的win11正式版系统用户,因为电脑一段时间不操作后,系统就自动锁定了.而唤醒以后常用户的登录账号却被禁止使用,导致无法登录系统了,这什么情况啊要如何解决呢?接下来,雨林木风小编就来 ...
- Unity 三行代码实现 玩家跟随移动平台移动,非设置父节点
非设置父节点,核心代码只需要3行 using System.Collections.Generic; using UnityEngine; public class Platform : MonoBe ...
- CF2077C Binary Subsequence Value Sum 题解
前言: (虚假的想象学竞赛,实际的数学竞赛) 题意: 给出一个长度为 \(n\) 的二进制序列,我们对于每一个分割点(可以看做在元素与元素之间),其贡献为分割点右边的 \(cnt_1 - cnt_0\ ...
- CSP-J/S2024游寄
加油啊! 第一轮: Day 0: 赶紧复习一手之前练过的真题 Day 1: 上午: J组好简单,感觉能考98,xtl&luogu估分(88.5)寄.(关于0到8之间有只有8个数的CCF出题人) ...
- I2C电平半高问题详解
I2C电平半高问题详解 最近遇到了I2C半高电平的问题,简单来说就是推挽模式输出强高电平+主机没有发送NACK导致的,想直接看问题解答请跳转至本文最后一小节. I2C介绍 I2C是一个半双工.多主从的 ...
- 文件上传MultipartFile异常java.lang.NoClassDefFoundError: javax/mail/internet/MimeUtility
接口用MultipartFile接收文件,突然有天报了个org.springframework.web.multipart.MultipartException: Failed to parse mu ...
- Win7禁用IPV6 [::1]环回地址
https://blog.csdn.net/just_lion/article/details/73468616 win7在ping localhost时显示地址为 [::1],地址不可达. 如果想禁 ...
- Avalonia跨平台入门第二十一篇之玩耍CEF
在前面分享的几篇中咱已经玩耍了Popup.ListBox多选.Grid动态分.RadioButton模板.控件的拖放效果.控件的置顶和置底.控件的锁定.自定义Window样式.动画效果.Expande ...
- Qt中使用信号与槽进行类与类之间的通信(父窗口直接调用函数触发子窗口信号的情况)
Qt中使用信号与槽进行类与类之间的通信(值传递):(父窗口调用信号和槽触发子窗口信号的情况,见本文) 1.A类中会发射信号(子部件)class CA{undefined signals: void A ...