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@用法的更多相关文章

  1. 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 ...

  2. spring.profiles.active=@profiles.active@的含义

    spring.profiles.active=@profiles.active@ ,其实是配合 maven profile进行选择不同配置文件进行启动. 当执行 mvn clean package - ...

  3. SpringBoot(十九)_spring.profiles.active=@profiles.active@ 的使用

    现在在的公司用spring.profiles.active=@profiles.active@ 当我看到这个的时候,一脸蒙蔽,这个@ 是啥意思. 这里其实是配合 maven profile进行选择不同 ...

  4. 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 ...

  5. Spring AOP 中@Pointcut的用法

    Spring Aop中@pointCut的用法,格式:execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? nam ...

  6. spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法 方法一: 1.在Spring的applicationContext.xml中配置bean <!-- 启用注解注入  -->      ...

  7. Spring中JdbcTemplate的基础用法

    Spring中JdbcTemplate的基础用法 1.在DAO中使用JdbcTemplate 一般都是在DAO类中使用JdbcTimplate,在XML配置文件中配置好后,可以在DAO中注入即可. 在 ...

  8. 全面解析Spring中@ModelAttribute注解的用法

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:全面解析Spring中@ModelAttribute注解的用法: @ModelAttribute注解用于将方法的参数或方法的返回值绑定到 ...

  9. spring boot配置项profiles active

    结论:通用项配置在applicaton.yml,区别环境配置在application-{profile}.yml中 一直不知道这个参数要不要配,配了有什么用,今天搭一个工程来检验 此项作用:用来区分不 ...

  10. spring boot maven profiles,打包不同的配置文件

    1. 在pom.xml添加 <profiles> <profile> <id>dev</id> <properties> <envir ...

随机推荐

  1. DVD+R和DVD-R有什么区别?如果选购的话有什么需要注意的?--九五小庞

    DVD-R和DVD + R的区别和比较 表面上看,DVD + R光盘看起来与DVD-R光盘没有区别.它们的直径均为120mm,厚度为1.2mm,包括两个0.6mm的聚碳酸酯基材.但是,DVD + R在 ...

  2. win11正式版账号锁定无法登录的问题

    有一些雨林木风官网的win11正式版系统用户,因为电脑一段时间不操作后,系统就自动锁定了.而唤醒以后常用户的登录账号却被禁止使用,导致无法登录系统了,这什么情况啊要如何解决呢?接下来,雨林木风小编就来 ...

  3. Unity 三行代码实现 玩家跟随移动平台移动,非设置父节点

    非设置父节点,核心代码只需要3行 using System.Collections.Generic; using UnityEngine; public class Platform : MonoBe ...

  4. CF2077C Binary Subsequence Value Sum 题解

    前言: (虚假的想象学竞赛,实际的数学竞赛) 题意: 给出一个长度为 \(n\) 的二进制序列,我们对于每一个分割点(可以看做在元素与元素之间),其贡献为分割点右边的 \(cnt_1 - cnt_0\ ...

  5. CSP-J/S2024游寄

    加油啊! 第一轮: Day 0: 赶紧复习一手之前练过的真题 Day 1: 上午: J组好简单,感觉能考98,xtl&luogu估分(88.5)寄.(关于0到8之间有只有8个数的CCF出题人) ...

  6. I2C电平半高问题详解

    I2C电平半高问题详解 最近遇到了I2C半高电平的问题,简单来说就是推挽模式输出强高电平+主机没有发送NACK导致的,想直接看问题解答请跳转至本文最后一小节. I2C介绍 I2C是一个半双工.多主从的 ...

  7. 文件上传MultipartFile异常java.lang.NoClassDefFoundError: javax/mail/internet/MimeUtility

    接口用MultipartFile接收文件,突然有天报了个org.springframework.web.multipart.MultipartException: Failed to parse mu ...

  8. Win7禁用IPV6 [::1]环回地址

    https://blog.csdn.net/just_lion/article/details/73468616 win7在ping localhost时显示地址为 [::1],地址不可达. 如果想禁 ...

  9. Avalonia跨平台入门第二十一篇之玩耍CEF

    在前面分享的几篇中咱已经玩耍了Popup.ListBox多选.Grid动态分.RadioButton模板.控件的拖放效果.控件的置顶和置底.控件的锁定.自定义Window样式.动画效果.Expande ...

  10. Qt中使用信号与槽进行类与类之间的通信(父窗口直接调用函数触发子窗口信号的情况)

    Qt中使用信号与槽进行类与类之间的通信(值传递):(父窗口调用信号和槽触发子窗口信号的情况,见本文) 1.A类中会发射信号(子部件)class CA{undefined signals: void A ...